Hỏi đáp

bcrypt là gì – viettingame

Bcrypt là gì? Code ví dụ BCrypt bằng Java – JBCrypt

(Xêm thêm: MD5 là gì? Code ví dụ MD5 với Java)

(Xem thêm: SHA là gì? Code ví dụ SHA1, SHA2 với Java)

BCrypt là gì?

BCrypt là một thuật toán mã hóa mật khẩu được thiết kế bởi Niels Provos and David Mazières.

Đang xem: Bcrypt là gì

BCrypt được reviews là bảo mật và an toàn và đáng tin cậy hơn so với MD5 và SHA bởi mỗi lần triển khai băm nó lại cho một giá trị không giống nhau, việc này tạo cho việc dò tìm mật khẩu trở nên khó hơn.

Code ví dụ BCrypt

Ở phía trên mình sử dụng thư viện JBCrypt để triển khai băm và so sánh giá băm.

Xem thêm: Giới Thiệu Về Scene Trong Cocos2D Là Gì, Phát Triển trò chơi Trên Đa Nền Tảng Cocos2Dx

Chúng ta mà thậm chí tải về tư viện tại phía trên

Hoặc import bằng maven:

<!– https://mvnrepository.com/artifact/org.mindrot/jbcrypt –> <dependencyvàgt; <groupIdvàgt;org.mindrotvàlt;/groupIdvàgt; <artifactIdvàgt;jbcryptvàlt;/artifactIdvàgt; <versionvàgt;0.4vàlt;/versionvàgt; </dependencyvàgt;

Ví dụ triển khai băm một quãng text:

String password = “viettingame.com”; String hash = BCrypt.hashpw(password, BCrypt.gensalt(12)); System.out.println(“BCrypt hash: ” + hash);

Trong số đó BCrypt.gensalt xác định số vòng, số vòng dao động từ 4-30, số vòng càng to thì thời hạn triển khai băm càng lâu.

Xem thêm: Tải trò chơi Bắn Cá Trung Quốc Cho Android, Ios, Cách Tải Và Cài Đặt trò chơi Bắn Cá Trung Quốc 1000

Thành tựu:

BCrypt hash: $2a$12$7oh8QTspcMvrD8zBjWW4NePLXm2Xf.ffFfXqj5CbLIf.elGx9A9Ce

Tiến hành chạy lại một lần nữa ta được một chuỗi khác:

BCrypt hash: $2a$12$Pmn0xKt4ZDtYAA6HypdWhuniNequ8ou2x7kG.9n.2Thw.Mza1RR.C

Ví dụ triển khai xác nhận mật khẩu với một quãng mã băm (BCrypt hash)

String password = “viettingame.com”; boolean valuate = BCrypt.checkpw(password, “$2a$12$OFOICietLS3.qRtzIe6jE.vF.fmtL22DqIZ18WNMmQ.8nS7Frq5aO”); System.out.println(valuate);

Thành tựu:

true

Demo mã hóa và xác nhận mật khẩu:

package viettingame.com.bcryptdemo.demo; import java.awt.Màu sắc; import java.awt.EventQueue; import java.awt.sự kiện.ActionEvent; import java.awt.sự kiện.ActionListener; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import org.mindrot.jbcrypt.BCrypt; public class MainApp extends JFrame catch (Exception e) } }); } /** * Create the frame. */ public MainApp() )); this.comboBoxRound.setBounds(353, 57, 172, 22); this.panelCalculator.add(this.comboBoxRound); this.btnCalculateHash = new JButton(“Calculate”); this.btnCalculateHash.addActionListener(new ActionListener() } }); this.btnCalculateHash.setBounds(12, 90, 95, 25); this.panelCalculator.add(this.btnCalculateHash); this.textFieldHashResult = new JTextField(); this.textFieldHashResult.setEditable(false); this.textFieldHashResult.setBounds(153, 90, 372, 22); this.panelCalculator.add(this.textFieldHashResult); this.textFieldHashResult.setColumns(10); this.panelTester = new JPanel(); this.panelTester.setBorder(new TitledBorder(UIManager.getBorder(“TitledBorder.border”), “BCrypt Tester”, TitledBorder.LEADING, TitledBorder.TOP, null, new Màu sắc(0, 0, 0))); this.panelTester.setBounds(12, 179, 543, 175); this.contentPane.add(this.panelTester); this.panelTester.setLayout(null); this.lblPasswordToEvaluate = new JLabel(“Password to evaluate:”); this.lblPasswordToEvaluate.setBounds(12, 26, 134, 16); this.panelTester.add(this.lblPasswordToEvaluate); this.textFieldPassToEvaluate = new JTextField(); this.textFieldPassToEvaluate.setColumns(10); this.textFieldPassToEvaluate.setBounds(154, 23, 380, 22); this.panelTester.add(this.textFieldPassToEvaluate); this.textFieldBcryptHashToEvaluate = new JTextField(); this.textFieldBcryptHashToEvaluate.setColumns(10); this.textFieldBcryptHashToEvaluate.setBounds(154, 74, 380, 22); this.panelTester.add(this.textFieldBcryptHashToEvaluate); this.lblBcryptHashTo = new JLabel(“BCrypt hash to evaluate:”); this.lblBcryptHashTo.setBounds(12, 77, 134, 16); this.panelTester.add(this.lblBcryptHashTo); this.btnTest = new JButton(“Calculate”); this.btnTest.addActionListener(new ActionListener() else } }); this.btnTest.setBounds(12, 123, 95, 25); this.panelTester.add(this.btnTest); this.textFieldEvaluteResult = new JTextField(); this.textFieldEvaluteResult.setEditable(false); this.textFieldEvaluteResult.setColumns(10); this.textFieldEvaluteResult.setBounds(153, 123, 372, 22); this.panelTester.add(this.textFieldEvaluteResult); } }

*

BCrypt là gì? Code ví dụ BCrypt bằng Java – JBCrypt

Okay, Done!

Tải về code ví dụ trên tại phía trên.

References:

https://en.wikipedia.org/wiki/Bcrypt

Về Viettingame.com

Viettingame.com - Chuyên trang web tổng hợp những thông tin hữu ích trên internet như thông tin về game, tin tổng hợp
Xem tất cả các bài viết của Viettingame.com →

Trả lời

Email của bạn sẽ không được hiển thị công khai.