Tho*_*ggi 12 cryptography sha256 hmac node.js
我可以使用以下内容制作HMAC:
var encrypt = crypto.createHmac("SHA256", secret).update(string).digest('base64');
Run Code Online (Sandbox Code Playgroud)
我试图用秘密解密编码的HMAC:
var decrypt = crypto.createDecipher("SHA256", secret).update(string).final("ascii");
Run Code Online (Sandbox Code Playgroud)
以下是不成功的.如何用密钥解密HMAC?
我收到以下错误:
node-crypto : Unknown cipher SHA256
crypto.js:155
return (new Decipher).init(cipher, password);
^
Error: DecipherInit error
Run Code Online (Sandbox Code Playgroud)
Cod*_*aos 47
HMAC是MAC /密钥哈希,而不是密码.它不是为解密而设计的.如果要加密某些内容,请使用密码(如AES),最好使用AES-GCM等身份验证模式.
"解密"的唯一方法是猜测整个输入,然后比较输出.
Tho*_*ggi 24
再次重申哈希不是为了解密而设计的.但是,一旦你有了一个哈希,你可以检查任何字符串是否等于该哈希,方法是通过相同的加密使用相同的密码.
var crypto = require('crypto')
var secret = 'alpha'
var string = 'bacon'
var hash = crypto.createHmac('SHA256', secret).update(string).digest('base64');
// => 'IbNSH3Lc5ffMHo/wnQuiOD4C0mx5FqDmVMQaAMKFgaQ='
if (hash === crypto.createHmac('SHA256', secret).update(string).digest('base64')) {
console.log('match') // logs => 'match'
} else {
console.log('no match')
}
Run Code Online (Sandbox Code Playgroud)
看似很明显,但非常强大.
| 归档时间: |
|
| 查看次数: |
50769 次 |
| 最近记录: |