Thuật toán SHA-1 được triển khai hỗ trợ mã hóa các giá trị của dữ liệu. Cụ thể thuật toán này là gì? Hay cách triển khai nó diễn ra như thế nào? Hãy cùng BKHOST theo dõi bài viết sau đây để tìm ra câu trả lời.
Thuật toán SHA-1 là gì?
SHA-1 viết tắt của Secure Hash Algorithm 1 là một thuật toán sử dụng hàm Cryptographic Hash để thu thập đầu vào và cho ra các giá trị Hash 160 bit (20byte). Trong đó, giá trị Hash này được gọi là Message Digest, nó bao gồm một chuỗi các số thập lục phân dài 40 chữ số.
Thuật toán SHA-1 được xem là U.S. Federal Information Processing Standard do cơ quan an ninh Quốc gia Hoa Kỳ phát triển. Tuy nhiên, kể từ năm 2005 đến nay thì thuật toán này được xem là phương pháp không có tính an toàn cao. Do đó, hàng loạt các trình duyệt lớn như Microsoft, Google, Apple và Mozilla đã ngừng hỗ trợ SHA-1 bằng cách từ chối các chứng chỉ SSL của nó.
Bạn có thể sử dụng lớp MessageDigest Class để tính toán các giá trị Cryptographic Hashing trong gói java.security. Lớp hỗ trợ này cung cấp Cryptographic Hashing để tìm các giá trị Hash của một văn bản. Chẳng hạn như MD2, MD5, SHA-1, SHA-224, SHA-256, SHA-384 và SHA-512.
Ví dụ về thuật toán SH1-1
SHA-1 được triển khai trong Static Method được gọi là getInstance (). Sau đó, thuật toán sẽ tính và trả về giá trị của Message Digest dưới dạng Byte Array. Lớp BigInteger có nhiệm vụ chuyển đổi Byte Array này thành Signum Representation của nó. Trong đó, Representation này cũng được chuyển đổi dưới dạng thập lục phân để có MessageDigest. Chẳng hạn như sau:
Input: hello world – Output: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
Input: BKHOST – Output: addf120b430021c36c232c99ef8d926aea2acd6b
Chương trình dưới đây cho thấy việc triển khai hàm băm SHA-1 trong Java:
{{EJS0}}
Output:
HashCode Generated by SHA-1 for:
BKHOST: addf120b430021c36c232c99ef8d926aea2acd6b
hello world : 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
Tổng kết
Hy vọng thông qua bài chia sẻ trên đây bạn đọc đã hiểu hơn về thuật toán SHA-1. Bạn hãy thử nghiên cứu thuật toán này để biết cách sử dụng một cách hiệu quả nhé.
Nếu còn gặp bất cứ vướng mắc gì về nội dung bài viết trên, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.