Hash MD5, SHA Và Các Loại Khác Trên Java - Tân Một Nắng Blog
Có thể bạn quan tâm
Tại sao cần hash
Chúng ta hash để chủ yếu cho mục đích là validation (kiểm tra tính toàn vẹn) của dữ liệu. Thường được dùng cho việc xác định file truyền đi có bị mất mát hay thay đổi dữ liệu, hoặc hay dùng trong xác thực mật khẩu. Về bản chất của hash là hàm băm, hàm chỉ mã hoá, không dịch ngượuc lại được. Với cùng 1 một dữ liệu đầu vào thì sẽ có duy nhất một dữ liệu đầu ra, ngược lại thì có thể sai, vì hai dữ liệu vào khác nhau thì có thể cho ra cùng một giá trị băm như nhau (tuỳ thuộc vào thuật toán băm). Thuật toán càng xịn thì độ đụng độ càng thấp nhưng bù lại thời gian băm lại lâu. À nói vậy thôi chứ đừng có lưu mật khẩu mà chỉ băm thôi nha, vì có thể dò ra từ hash table, nên để lưu mật khẩu người ta hay thêm salt (muối) và pepper (tiêu ấy) nữa cho an toàn, chắc mình sẽ viết thêm một bài khác.
Ở bài này mình sẽ hướng dẫn các bạn hiện thực trên Java bằng cả 2 cách là không dùng thêm thư viện ngoài và dùng thư viện ngoài
Không dùng thư viện ngoài
try { String s = "ahihi"; MessageDigest digest = MessageDigest.getInstance("SHA-256"); // replay MD5, SHA-512 byte[] hash = digest.digest(s.getBytes(StandardCharsets.UTF_8)); String rs = DatatypeConverter.printHexBinary(hash); System.out.println(rs); } catch (NoSuchAlgorithmException e) { }Chúng ta sẽ khởi tạo một MessageDigest là nơi khai báo kiểu hash của chúng ta.
Sau đó lấy byte của string (lấy với định dạng UTF-8) và dùng giá trị đó hash ra từ MessageDigest đã khởi tạo ở trênSau đó dùng hàm DatatypeConverter.printHexBinary để lấy giá trị hex từ cái byte kia là xong.Ở đây chúng ta đặt vào try catch hoặc throw Exception là NoSuchAlgorithmException có nghĩa là sai thuật toán hash (đại loại là sai tên hoặc sai cú pháp tên SHA-ahihi chẳng hạn)
Dùng thư viện
Chắc chắn là dùng thư viện sẽ đơn giản hơn nhiều rồi, nhưng mà phải tải và thêm vào project, tuỳ cách chọn thôi. https://mvnrepository.com/artifact/commons-codec/commons-codec/1.13 Ai dùng maven thì add dependency vào là xong, còn Ant thì download file Jav về nha

Đơn giản quá phải khôngVậy là ở bài này, mình đã hướng dẫn hash cơ bản bằng cả hai cách. Hy vọng bài viết của mình sẽ giúp ích được các bạn.
Hoàng Đức TânMình là một developer. Sở thích của mình là chụp ảnh, “làm gì” bàn phím và nhiều thứ linh tinh khác nữa.
Từ khóa » Java Giải Mã Md5
-
Mã Hóa Mật Khẩu Bằng MD5 Trong Java - Deft Blog
-
MD5 Là Gì? Code Ví Dụ MD5 Với Java - STACKJAVA
-
Mã Hoá MD5 Trong Java - Lập Trình
-
Mã Hóa Dữ Liệu MD5 Trong Java - Team Việt Dev
-
Encode Code Md5 - Mã Hóa Code Md5 Java Jsp ~ Thế Giới Giải Mã
-
Mã Hóa Và Giải Mã Mật Khẩu Trong Java [đóng] - HelpEx
-
Mã Hóa 1 Chiều Với MD5 Trong Lập Trình Java
-
Tài Liệu Mã Hóa Và Giải Mã Md5 Trong Java - 123doc
-
[Mã Hóa MD5 Trong Java] #java - GitHub
-
Giải Mã MD5 được Không? Những Website Dịch Ngược ... - Huy Hòa
-
Thực Hiện Mã Hóa Và Xác Minh Giải Mã Java Của MD5 Và Base64
-
Mã Hóa Password Trong Java Với MD5 - Anh Luân
-
[Java Security] Phần 6 : Message Digests - Chia Sẻ