2013-03-13 32 views
5

Tôi đang chuyển một tập lệnh php sang nút và tôi không biết nhiều về mã hóa.Chuyển đổi PHP hash_hmac (sha512) thành NodeJS

Các php script sử dụng chức năng này:

hash_hmac('sha512', text, key); 

Vì vậy, tôi cần phải thực hiện một chức năng trong Node js trả lại một băm có khóa bằng cách sử dụng phương pháp HMAC (SHA512).

Từ những gì tôi có thể thấy, nút có chức năng này được tích hợp thông qua mô-đun mã hóa (http://nodejs.org/docs/latest/api/crypto.html#crypto_crypto) - Nhưng tôi không rõ cách tái tạo chức năng này.

Mọi trợ giúp sẽ được đánh giá cao.

Xin cảm ơn,

Trả lời

8

Có, sử dụng thư viện mật mã.

var hash = crypto.createHmac('sha512', key); 
hash.update(text); 
var hashed_data = hash.digest(); 

Thông tin chi tiết (ví dụ đối số để tiêu hóa để điều khiển mã hóa đầu ra từ hash.digest) đang ở the link bạn cung cấp.

Như Nick chỉ ra, bạn sẽ cần phải làm toàn bộ quá trình này mỗi khi bạn muốn mã hóa một chuỗi mới (tức là tạo ra một đối tượng mới hash qua crypto.createHmac.)

+2

Mẹo khi sử dụng điều này, tôi nghĩ rằng bạn chỉ có thể gọi phương thức digest() trên băm một lần. Điều này có nghĩa là bạn không thể sử dụng update(), tiếp theo là digest() để tạo một hash khác. Nếu bạn cần tạo nhiều băm, bạn sẽ phải sử dụng crypto.createHmac() nhiều lần. –

+0

Vâng, điều này là chính xác như xa như tôi biết. Cảm ơn, tôi sẽ cập nhật câu trả lời của tôi. –

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