2010-07-23 18 views
6

Trình đọc thời gian dài, áp phích lần đầu. Và tôi bắt đầu với một câu chuyện khó hiểu!MySQL (Windows) có thể làm SHA-256 và HMAC băm không?

Điều tôi đang tìm kiếm là mã hóa chuỗi bằng thuật toán SHA-256 và băm bằng một khóa.

Tôi phát hiện một người đã thực hiện một số công việc tuyệt vời trong việc tạo ra một thuật toán cho mã hóa SHA-2 "bình thường" như một hàm được lưu trữ tại: http://blog.darkrainfall.org/sha-256-in-mysql/ có thể giúp đỡ người khác, nhưng tôi cần một chìa khóa.

Bất cứ ai cũng biết nếu điều này là có thể? Tôi là một người mới hoàn toàn mã hóa tôi sợ.

Tôi đang sử dụng mySQL 5.1 trên máy chủ Windows 2003.

Chúc mừng.

Trả lời

1

Có một chút không rõ mục tiêu cuối cùng của bạn là gì, nhưng triển khai SHA mà bạn tham chiếu sẽ có thể thực hiện băm bạn muốn. Một ý nghĩa của "băm cái gì đó với một chìa khóa" để xác thực tin nhắn có thể là bạn lấy một khóa bí mật và thêm nó vào dữ liệu và sau đó băm toàn bộ kết quả. Wikipedia hữu ích có một số thông tin trên HMAC.

Lưu ý rằng băm không phải là mã hóa. Câu hỏi dường như ngụ ý rằng một cái gì đó băm là giống như mã hóa nó. Một băm, mặc dù, có một số dữ liệu và chạy nó thông qua một máy xay dữ liệu và tạo ra một (thường) cố định chiều dài đoạn dữ liệu. Với hàm băm có mật mã mạnh, nó được cho là không thể (từ quan điểm thực tế) để tìm đầu vào dẫn đến giá trị băm đã cho. Mã hóa, mặt khác, lấy một khóa và một đoạn dữ liệu và chạy i thông qua một máy xay dữ liệu và tạo ra một đoạn dữ liệu mà sau đó có thể được "unblended" kết hợp với khóa ban đầu để tạo ra dữ liệu gốc.

+0

Chỉ cần lưu ý. Hashing với một phím không * không * nhất thiết có nghĩa là chuẩn bị hashable với khóa. Thông thường, băm muối liên quan đến việc chuẩn bị băm với muối. HMAC là một hàm lấy, như các đối số, một thuật toán băm và một khóa, và trả về một thuật toán băm mới. Thuật toán băm mới này sẽ biến đổi hàm băm với khóa thông qua một cơ chế phức tạp và an toàn hơn. – yfeldblum

+0

@Justice - Điều đó đúng. Tôi đã đơn giản hóa với một kịch bản có thể xảy ra. Tôi sẽ cố gắng cập nhật nó chính xác hơn. –

+0

Chà, thật nhanh. Xin lỗi tôi đã tự hỏi nếu tôi đã được rõ ràng và bạn đã đặt cho tôi ngay! Tôi muốn để có thể làm điều gì đó như thế này trong một câu lệnh SQL: CHỌN hash_hmac ('sha256', '$ biến', '$ key') như hashed_response Tôi biết tôi có thể làm sha256 với chức năng được lưu trữ mà tôi đã đề cập, nhưng tôi tự hỏi làm cách nào tôi có thể mở rộng nó cho HMAC. Mặc dù từ những gì bạn đang nói ở trên, kịch bản mặc dù nó chia sẻ mã hóa quyền có thể không khởi động cho những gì tôi đang cố gắng làm. Tôi chỉ làm việc này trong 24 giờ, vì vậy hãy nhẹ nhàng với tôi! – Dave

Các vấn đề liên quan