UltKit

Tạo mã hash

Nhập văn bản hoặc chọn một tệp để nhận mã băm MD5, SHA-1, SHA-256, SHA-384 và SHA-512 hiển thị cạnh nhau, mỗi mã có nút sao chép riêng. Việc băm chạy ngay trên thiết bị của bạn bằng Web Crypto API của trình duyệt và một hàm MD5 cục bộ, nên tệp không bao giờ bị tải lên.

0 ký tự · 0 từ · 0 dòng

MD5không dùng cho bảo mật
—
SHA-1không dùng cho bảo mật
—
SHA-256
—
SHA-384
—
SHA-512
—

0 ký tự · 0 từ · 0 dòng

Chạy hoàn toàn trong tab trình duyệt này. Văn bản của bạn không bao giờ được tải lên hay lưu trữ.

Kích thước digest

Độ dài và digest của đầu vào rỗng được tính bằng chính hàm MD5 của trang này và Web Crypto API khi trang được tạo.

Thuật toánSố bit digestĐộ dài hexSố bit khốiTrạng tháiHash của đầu vào rỗng
MD512832512Đã bị phá: tìm ra xung đột năm 2004d41d8cd98f00b204e9800998ecf8427e
SHA-116040512Đã bị phá: xung đột được chứng minh năm 2017da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA-25625664512An toàn (SHA-2)e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA-384384961024An toàn (SHA-2)38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b
SHA-5125121281024An toàn (SHA-2)cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e

Năm thuật toán, hai trong số đó đã lỗi thời

Hàm băm biến dữ liệu đầu vào có kích thước bất kỳ thành một "dấu vân tay" có độ dài cố định. Chỉ cần đổi một ký tự, khoảng một nửa số bit đầu ra sẽ thay đổi, nên ngay cả "UltKit" và "ultkit" cũng cho ra hai giá trị băm hoàn toàn khác nhau. MD5, do Ron Rivest công bố trong RFC 1321 năm 1992, cho ra 128 bit (32 ký tự thập lục phân). Năm 2004, Xiaoyun Wang và các cộng sự chỉ ra cách tạo hai đầu vào khác nhau có cùng giá trị băm MD5, và đến năm 2012, mã độc Flame đã dùng một vụ va chạm MD5 để giả mạo chứng chỉ ký mã của Microsoft. SHA-1 (160 bit) cũng bị phá theo cách tương tự khi Google và CWI Amsterdam công bố vụ va chạm thực tế đầu tiên, SHAttered, vào năm 2017. Cả hai đều được gắn nhãn "không dùng cho bảo mật" ở đây.

SHA-256, SHA-384 và SHA-512 thuộc họ SHA-2, được NIST quy định trong FIPS 180-4, và hiện chưa có cuộc tấn công thực tế nào nhắm vào chúng. SHA-256 là lựa chọn mặc định cho các bản tải phần mềm, định dạng đối tượng mới của Git, chứng chỉ TLS và Bitcoin. MD5 và SHA-1 vẫn dùng tốt cho các việc không có đối thủ tấn công, như phát hiện lỗi hỏng dữ liệu ngẫu nhiên hoặc loại bỏ file trùng lặp, nên nhiều trang tải xuống vẫn liệt kê chúng.

Vì sao băm không phải là mã hóa

Mã hóa vốn có thể đảo ngược: ai có khóa sẽ lấy lại được dữ liệu gốc. Hàm băm không có khóa và không thể đảo ngược, vì vô số đầu vào cùng cho ra một giá trị băm. Nhưng điều đó không có nghĩa là băm là nơi chứa bí mật an toàn. Kẻ tấn công thấy SHA-256 của một đầu vào ngắn hoặc phổ biến chỉ cần băm thử các ứng viên cho đến khi trùng khớp, và các bảng tính sẵn đã bao phủ hàng tỉ mật khẩu quen thuộc. Hàm băm nhanh được thiết kế để chạy nhanh, và GPU hiện đại thử được hàng tỉ lần đoán SHA-256 mỗi giây.

Vì vậy, hãy lưu mật khẩu bằng hàm băm mật khẩu cố ý chạy chậm và có salt như Argon2, bcrypt hoặc scrypt, đừng bao giờ dùng MD5 hay SHA-256 thuần, và hãy tạo chính các mật khẩu đó bằng công cụ tạo mật khẩu. Hãy dùng trang này cho những việc hàm băm nhanh làm tốt: xác minh file tải về khớp với checksum mà nhà phát hành công bố, so sánh hai file mà không cần mở, hoặc kiểm tra giá trị băm do chính mã của bạn tính ra. Văn bản được băm dưới dạng UTF-8 và không có ký tự xuống dòng ở cuối, đây thường là lý do kết quả khác với echo "text" | sha256sum trong terminal. Trang công cụ cho nhà phát triển so sánh băm với các kiểu mã hóa đảo ngược được trên cùng một mẫu.

Câu hỏi thường gặp

Làm sao kiểm tra tệp đã tải về bằng mã checksum SHA-256?
Chọn file bằng mục Hash a file, rồi so sánh dòng SHA-256 với giá trị trên trang của nhà phát hành. Mọi ký tự phải khớp; hex viết hoa chỉ thay đổi cách hiển thị các chữ cái từ a đến f.
Có thể giải mã hash MD5 hoặc SHA-256 không?
Không, vì không có gì để giải mã. Các trang tự nhận đảo ngược được hàm băm thực chất tra giá trị băm trong bảng các chuỗi đã băm trước đó, cách này chỉ hiệu quả với đầu vào ngắn hoặc phổ biến.
Vì sao vẫn cung cấp MD5 dù thuật toán này đã bị phá?
Nhiều hệ thống vẫn công bố checksum MD5, và nó phát hiện rất tốt các thay đổi ngẫu nhiên. MD5 chỉ bị phá khi đối mặt với kẻ tấn công cố ý tạo ra các file va chạm.
Mã hash MD5 của chuỗi rỗng là gì?
d41d8cd98f00b204e9800998ecf8427e. Thấy giá trị này thường nghĩa là chương trình đã băm một dữ liệu rỗng, chẳng hạn do file không tải được trước khi băm.
SHA-512 có an toàn hơn SHA-256 không?
Cả hai đều chưa bị phá và vượt xa khả năng dò tìm vét cạn. SHA-512 có đầu ra dài hơn và có thể nhanh hơn trên bộ xử lý 64 bit, nhưng SHA-256 là lựa chọn được mong đợi rộng rãi hơn cho checksum và chữ ký.