Nguồn gốc của bài viết này là mình nhận được yêu cầu sử dụng SHA3-256
để match password khi thực hiện chức năng login, và DB lưu user cùng với password là của một bên thứ 3 nên đương nhiên là họ nói gì ta làm đó rồi!
:v Nhưng bạn vẫn nên hiểu nó là gì đúng không? Nếu cùng suy nghĩ thì chúng ta băt đầu thôi =))
Nếu bạn chưa biết cái mã hóa này áp dụng thực tế làm gì thì có thể đọc qua một bài viết nhỏ này here
Việc encrypt password theo 1 chuẩn bất kì trước khi lưu vào DB là một bước để đảm bảo security. Có rất nhiều chuẩn mã hóa khác nhau như MD5, SHA-1 hay SHA-2, ... Tiêu chuẩn ở đây là chỉ mã hóa 1 chiều, nghĩa là việc giải mã lại password sau khi đã mã hóa với các thuật toán trên là rất khó khăn như vậy mới được coi là bảo mật đúng không? Nhưng khó khăn chứ không phải không thể nên hiện tại các thuật toán mã hóa vẫn đang ngày càng được phát triển, cải tiến để bảo mật hơn, khó giải mã hơn
Trong bài viết này cùng mình tìm hiểu SHA3-256 đã có những cái gì mới so với phiên bản cũ nha
SHA (Security Hash Algorithms)
https://en.wikipedia.org/wiki/Secure_Hash_Algorithms
- SHA có khá nhiều phiên bản đã được ra đời từ rất lâu trước đây, trước so với MD5 nữa, lần đầu được ra mắt là vào năm 1993
- Được thiết kế bởi National Security Agency (NSA) - nghe ngầu vãi đúng không - nó cũng là cái ảnh cho phần mở đầu đó :#
- SHA2 hiên được sử dụng rộng rãi nhất trên thế giới về độ bảo mật và SH3 là version mới nhất
- Với
SHA-256
output của nó sẽ là một chuỗi 256 bit, 32 bytes,SHA-512
output sẽ là 512-bit, 64 bytes. - ...
SHA-2 and SHA-3
https://crypto.stackexchange.com/questions/68307/what-is-the-difference-between-sha-3-and-sha-256
1. Designed by
SHA-2
được xây dựng bởi National Security Agency (NSA)SHA-3
được xâu dựng bởi National Institute of Standards and Technology (NIST)
2. Performance
-
SHA-2
nhưSHA-512
,SHA-512/224
, andSHA-512/256
có hiệu suất nhanh hơnSHA-3
đương nhiên là có bao gồmSHA3-256
:v. Thật khó hiểu khi phiên bản sau lại có hiệu suất kém hơn nhỉ? thậm chí là còn có kết quả so sánh cụ thể trên trang https://www.blake2.net/ như sau: -
Lí do?
Partly this was out of paranoia and political reasons in the SHA-3 design process.
=> Hoang tưởng và vấn đề chính trị khi thiết kế? oh thật là khó hiểu mấy ổng :v
3. Internal design
-
SHA-2
sử dụng cấu trúc Davies–Meyer -
SHA-3
sử dụng phép hoán vị Keccak
4. Other
-
Có một điểm nữa là
SHA-2
thiết kế dựa trên nguyên tắc củaMD4, MD5, SHA-0, và SHA-1
. CònSHA-3
lại có cách tiếp cận khác hoàn toàn nên những phát triển sau này sẽ không bị phụ thuộc vàoMD4
, ... -
Và cũng có những bài viết nói việc
SHA-3
chậm hơn so với phiên bản cũ là do các parameters đầu vào được thiết kế cố định vàVÔ Ý
viết thừa vì lý doCHÍNH TRỊ
- ôi cuộc đời
5. Summary image
Tìm hiểu một hồi mệt quá, thôi hỏi khách hàng cho nhanh vậy ! Cám ơn các bạn đã đọc
Bài viết được tham khảo
ở rất nhiều nguồn nên không nhớ :v