Trình tạo SHA-224

5 trên 2 xếp hạng

Trình tạo SHA-224 là công cụ miễn phí giúp tạo mã băm SHA-224 có độ dài cố định từ bất kỳ chuỗi đầu vào nào.

SHA-224 là gì và hiện còn an toàn không?

SHA-224 là một hàm băm mật mã thuộc họ SHA-2, hiện không bị coi là đã bị phá vỡ hay lỗi thời. SHA-224 dùng phép tính một chiều để biến dữ liệu thành một dấu vân tay có độ dài cố định. Cùng một đầu vào luôn tạo ra cùng một giá trị băm, còn chỉ một thay đổi nhỏ trong đầu vào thường sẽ cho kết quả rất khác. Không giống mã hóa, phép băm SHA-224 không có khóa để khôi phục văn bản ban đầu.

SHA-224 tạo ra giá trị băm 224 bit, thường được biểu diễn bằng 56 ký tự thập lục phân. NSA thiết kế họ SHA-2 và NIST công bố lần đầu vào năm 2001. Đến năm 2004, NIST bổ sung SHA-224 vào tiêu chuẩn. Thuật toán này sử dụng cùng cấu trúc nén nền tảng với SHA-256, nhưng có các giá trị khởi tạo khác và cho kết quả ngắn hơn.

Hiện chưa có phương pháp tấn công va chạm hoặc tìm tiền ảnh nào khả thi được công bố đối với SHA-224 đầy đủ. Khả năng kháng va chạm dự kiến của thuật toán này vào khoảng 112 bit, so với khoảng 128 bit của SHA-256. Có thể dùng SHA-224 để bảo đảm khả năng tương thích khi một giao thức yêu cầu cụ thể và các yêu cầu bảo mật hiện tại cho phép, dù SHA-256 được phần mềm hỗ trợ rộng rãi hơn và có biên an toàn lớn hơn.

Làm cách nào để tạo mã băm SHA-224?

Nhập chính xác chuỗi cần xử lý, chạy trình tạo rồi xem giá trị 56 ký tự trong mục Mã băm SHA-224.

  1. Chuẩn bị văn bản đúng như nội dung cần được SHA-224 xử lý, bao gồm dấu cách, dấu câu và chữ hoa, chữ thường.
  2. Đưa chuỗi đó vào trường nhập của Trình tạo SHA-224 rồi tạo kết quả.
  3. Sao chép giá trị băm SHA-224 gồm 56 ký tự mà không thêm dấu ngoặc kép, dấu cách hoặc ký tự xuống dòng.
  4. Khi so sánh các giá trị, hãy kiểm tra đủ cả 56 ký tự thập lục phân.

Phép tính được thực hiện trên máy chủ bằng hàm băm của PHP. Dữ liệu đầu vào được gửi đến máy chủ qua HTTPS và không được lưu trữ. Dù vậy, đừng gửi mật khẩu, khóa riêng tư hoặc những dữ liệu bí mật khác nếu không cần đưa chúng ra khỏi thiết bị.

Có thể giải mã hoặc đảo ngược SHA-224 không?

Không. Không thể giải mã giá trị băm SHA-224 vì SHA-224 không phải là mã hóa và không có khóa để đảo ngược. Tuy nhiên, kẻ tấn công vẫn có thể đoán đầu vào, băm giá trị dự đoán rồi so sánh kết quả. Cách này khả thi khi giá trị ban đầu thuộc một tập hợp nhỏ hoặc dễ dự đoán, chẳng hạn như mã PIN ngắn, từ thông dụng hoặc mã tham chiếu đã biết.

Chính rủi ro đoán đầu vào này là lý do không được dùng SHA-224 để lưu trữ mật khẩu. Tốc độ cao là ưu điểm khi tính tổng kiểm tra, nhưng lại là điểm yếu trước các cuộc tấn công dò đoán. Hệ thống mật khẩu nên dùng hàm băm chuyên dụng như Argon2id, scrypt hoặc bcrypt, kèm một salt riêng cho từng mật khẩu và hệ số công việc phù hợp.

Khi nào nên dùng SHA-224?

Hãy dùng SHA-224 khi một định dạng tệp, API, hệ thống chứng chỉ hoặc ứng dụng cũ yêu cầu rõ ràng giá trị băm SHA-224. Kết quả ngắn hơn của thuật toán này cũng có thể phù hợp với trường dữ liệu được quy định chặt chẽ, cho phép 224 bit nhưng không cho phép 256 bit.

  • Tổng kiểm tra để phát hiện thay đổi ngoài ý muốn khi SHA-224 là thuật toán đã được thống nhất.
  • Loại bỏ dữ liệu trùng lặp khi nội dung giống nhau cần có một mã định danh nhất quán và hậu quả của một va chạm có chủ đích ở mức hạn chế.
  • Tương thích với hệ thống cũ khi phần mềm hoặc bản ghi đã lưu chứa sẵn các giá trị SHA-224.
  • Triển khai giao thức khi thông số kỹ thuật chỉ định SHA-224 hoặc HMAC-SHA-224.

Một tổng kiểm tra SHA-224 đơn thuần không chứng minh được tính xác thực. Nếu kẻ tấn công có thể thay thế cả tệp lẫn giá trị băm SHA-224 đã công bố, việc so sánh sẽ không mang lại khả năng bảo vệ nào. Khi cần xác minh cả nguồn cung cấp, hãy dùng chữ ký số hoặc HMAC có khóa thay cho giá trị băm SHA-224 thông thường. Với một cơ chế tổng kiểm tra đa dụng mới, SHA-256 thường dễ tích hợp hơn và có thể được tạo bằng Trình tạo SHA-256.

Chi tiết đầu vào và ví dụ minh họa

SHA-224 xử lý byte nên mọi chi tiết của đầu vào đều quan trọng. Chuỗi ASCII gồm ba ký tự abc tạo ra 23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7. Kết quả có 56 ký tự thập lục phân.

  • Report và report tạo ra các mã băm khác nhau vì chữ hoa, chữ thường làm thay đổi đầu vào.
  • Dấu cách ở đầu, dấu cách ở cuối và ký tự kết thúc dòng đều được tính là dữ liệu. Văn bản sao chép từ trình soạn thảo có thể chứa ký tự xuống dòng cuối cùng mà mắt thường khó nhận thấy.
  • Các chữ số được băm dưới dạng ký tự trong chuỗi. Văn bản 0123 khác với 123.
  • Ký tự có dấu và ký tự ngoài bảng chữ cái Latin trước hết phải được biểu diễn bằng một bảng mã ký tự. UTF-8 và một bảng mã khác có thể tạo ra các chuỗi byte khác nhau, từ đó cho mã băm khác nhau.
  • Thuật toán có thể xử lý dữ liệu dài theo từng khối, nhưng trang này không công bố giới hạn tối đa đối với đầu vào hoặc kích thước yêu cầu của công cụ trực tuyến.

SHA-224 không đơn giản là 224 bit đầu tiên của một giá trị băm SHA-256 thông thường. Việc cắt ngắn kết quả SHA-256 sẽ không tạo ra SHA-224 vì hai hàm bắt đầu bằng các giá trị nội bộ khác nhau.

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

Mã băm thập lục phân viết hoa và viết thường có giống nhau không?

Có. Chữ hoa hay chữ thường trong biểu diễn thập lục phân không làm thay đổi giá trị băm bên dưới, vì vậy ab12 và AB12 đại diện cho cùng một dãy byte. Tuy nhiên, phần mềm thực hiện phép so sánh văn bản thông thường có phân biệt chữ hoa, chữ thường vẫn có thể coi đó là hai chuỗi khác nhau. Vì vậy, hãy chuẩn hóa kiểu chữ trước khi so sánh các giá trị đã lưu.

Có thể dùng công cụ này để băm tệp không?

Không trực tiếp. Công cụ này được thiết kế để nhận chuỗi đầu vào, không hỗ trợ tải tệp lên. Để tính tổng kiểm tra của tệp, hãy dùng phần mềm đọc tệp dưới dạng byte thô, chẳng hạn như sha224sum trên các hệ thống có cung cấp lệnh này hoặc một lệnh OpenSSL phù hợp. Việc dán nội dung hiển thị của tệp có thể làm thay đổi ký tự kết thúc dòng hoặc bảng mã ký tự.

SHA-224 có phù hợp để xác thực bằng HMAC không?

HMAC-SHA-224 vẫn là một cấu trúc có khóa hợp lệ khi giao thức yêu cầu. Tuy nhiên, công cụ này trả về mã băm SHA-224 thông thường chứ không phải HMAC. Phép tính HMAC cần có khóa bí mật và cách triển khai chuyên dụng.

Tại sao công cụ SHA-224 khác lại cho kết quả không giống nhau?

Các đầu vào có thể khác nhau ở cấp độ byte. Hãy kiểm tra dấu cách ẩn và ký tự xuống dòng. Nếu cách biểu diễn ký tự khác nhau, hãy kiểm tra chuẩn hóa Unicode và bảng mã văn bản. Nếu cách ứng dụng xử lý dữ liệu khác nhau, hãy kiểm tra xem ứng dụng kia có thêm tiền tố nào không. Đồng thời, hãy xác nhận kết quả đó thực sự là SHA-224 chứ không phải giá trị băm SHA-256 đã bị cắt ngắn.

Kiểm tra lần cuối

Hãy ghi lại chính xác bảng mã đầu vào và việc có hay không ký tự xuống dòng ở cuối mỗi khi một hệ thống khác cần tạo lại giá trị băm SHA-224 của công cụ này. Xác nhận hệ thống nhận dữ liệu yêu cầu SHA-224 và giá trị thập lục phân gồm 56 ký tự. Nếu không có thông số kỹ thuật nào bắt buộc dùng SHA-224, hãy cân nhắc SHA-256 để có khả năng tương thích rộng hơn và biên kháng va chạm lớn hơn.

Công cụ phổ biến