Đây là một câu hỏi kỳ quặc, nhưng tôi đã làm việc này trong nhiều giờ và không tiến bộ nhiều. Tôi hy vọng ai đó ở đây có thể tư vấn ...(Không phải như vậy) Phím thông minh đang gây ra vấn đề với SHA512 Hmac trong Node JS
Tôi đang chuyển một tập lệnh từ php sang nút. Các kịch bản php tận dụng chức năng này:
hash_hmac('sha512', $text, $key);
tôi đã sao chép này trong nút bằng cách sử dụng mô-đun crypto:
var hash = crypto.createHmac("sha512", key);
hash.update(text);
return hash.digest("hex");
Tôi đã xác minh rằng các chức năng sản xuất các hash tương tự khi cho cùng văn bản và Chìa khóa.
Trừ ...
Chuỗi đang được sử dụng cho một chìa khóa trong php trông giống như thế này: (Đừng hỏi)
define("SITE_KEY", "
__
, ,' e`---o
(( ( | ___,'
\\~-------------------------------' \_;/
( /
/) ._______________________________. )
((( (((
``-' ``-'
");
Tôi đã cố gắng để tái sản xuất này trong Javascript như như vậy:
var key = "\
__\
, ,' e`---o\
(( ( | ___,'\
\\\\~-------------------------------' \\_;/\
( /\
/) ._______________________________. )\
((( (((\
``-' ``-'\
\
";
Nhưng nó không hoạt động. (Tôi cho rằng nó phải có một cái gì đó để làm với các linebreaks).
Thay thế dòng mới với "\ r \ n" hoặc "\ n" như trong những điều sau đây cũng không hoạt động:
var key = "\r\n __\r\n , ,' e`---o\r\n (( ( | ___,'\r\n \\\\~-------------------------------' \\_;/\r\n ( /\r\n /) ._______________________________. )\r\n ((( (((\r\n ``-' ``-'\r\n\r\n";
Gợi ý về làm thế nào để sửa lỗi này? (Loại bỏ con chó không phải là một lựa chọn, thật không may.)
Cảm ơn (trước) để được giúp đỡ của bạn.
Đây là câu hỏi yêu thích mới của tôi về Stack Overflow. – Bill
Sự khác nhau giữa khóa thực và khóa bạn đã dán là khóa thực có "long dog is long" được viết ở giữa không? – hobbs
Như bạn đã nói, chìa khóa không phải là * chính xác * giống nhau ... nhưng các dấu gạch chéo ngược lại khác nhau giữa hai con chó. Trong PHP, \\ gần đuôi chó được hiểu là một dấu gạch chéo ngược chữ.Các \ _ gần tai chó được hiểu là một dấu gạch chéo ngược chữ và dấu gạch dưới. Hãy thử base64! :-) – MrTrick