这是一个奇怪的问题,但我已经为此工作了几个小时并且没有取得太大进展。我希望这里有人可以提供建议...
我正在将脚本从 php 移植到节点。php 脚本使用了这个函数:
hash_hmac('sha512', $text, $key);
我已经使用加密模块在节点中复制了这个:
var hash = crypto.createHmac( "sha512", key );
hash.update( text );
return hash.digest( "hex" );
我已经验证了这些函数在给定相同的文本和密钥时会产生相同的哈希值。
除了...
在 php 中用作键的字符串看起来类似于:(不要问)
define("SITE_KEY", "
__
, ,' e`---o
(( ( | ___,'
\\~-------------------------------' \_;/
( /
/) ._______________________________. )
(( ( (( (
``-' ``-'
");
我试图在 Javascript 中重现它,如下所示:
var key = "\
__\
, ,' e`---o\
(( ( | ___,'\
\\\\~-------------------------------' \\_;/\
( /\
/) ._______________________________. )\
(( ( (( ( \
``-' ``-'\
\
";
但它不起作用。(我认为它必须与换行符有关)。
如下所示用“\r\n”或“\n”替换换行符也不起作用:
var key = "\r\n __\r\n , ,' e`---o\r\n (( ( | ___,'\r\n \\\\~-------------------------------' \\_;/\r\n ( /\r\n /) ._______________________________. )\r\n (( ( (( ( \r\n ``-' ``-'\r\n\r\n";
有关如何解决此问题的建议?(不幸的是,摆脱狗不是一种选择。)
在此先感谢您的帮助。