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 » Thư Viện Md5
-
C# - Thư Viện Mã Hóa MD5 | Cộng đồng AutoIT Vietnam
-
MD5 Là Gì? - Thư Viện Hỏi Đáp
-
Một Số Loại Mã Hóa Thường Dùng - Viblo
-
Hướng Dẫn Mã Hóa Mật Khẩu 1 Chiều Với MD5 Trong C# - TUAN DC
-
Mã Hóa Mật Khẩu Bằng MD5 Trong Java - Deft Blog
-
GÓC HỌC TẬP: Code Mã Hóa MD5 Trong C# - Blogger
-
Tìm Hiểu Và Phân Tích đánh Giá độ An Toàn Của Thuật Toán MD5 - VNU
-
Mã Hóa MD5 Với C# - Lập Trình VB.NET
-
Mã Hóa Md5 Trong Java
-
Hướng Dẫn Kiểm Tra MD5 - FastCA
-
Mã Hóa Và Giải Mã MD5 Trong VB.NET | Blog Của BÙI QUANG HIỂN
-
Check Mã MD5 Bằng C# - Hoàng Phong