如何使用 JavaScript 和 sha512 算法散列字符串
How do I hash a string using JavaScript with sha512 algorithm
我试过使用 NPM 的 sha512,但它一直在散列错误的东西,即我应该得到一个字符串,但它一直返回对象。
所以在 PHP 我知道我可以执行任务 $hash = hash("sha512","my string for hashing");
如何在 nodejs 上执行此任务JavaScript
如果您使用的是节点:
> crypto.createHash('sha512').update('my string for hashing').digest('hex');
'4dc43467fe9140f217821252f94be94e49f963eed1889bceab83a1c36ffe3efe87334510605a9bf3b644626ac0cd0827a980b698efbc1bde75b537172ab8dbd0'
如果要使用浏览器Web CryptoAPI:
function sha512(str) {
return crypto.subtle.digest("SHA-512", new TextEncoder("utf-8").encode(str)).then(buf => {
return Array.prototype.map.call(new Uint8Array(buf), x=>(('00'+x.toString(16)).slice(-2))).join('');
});
}
sha512("my string for hashing").then(x => console.log(x));
// prints: 4dc43467fe9140f217821252f94be94e49f963eed1889bceab83a1c36ffe3efe87334510605a9bf3b644626ac0cd0827a980b698efbc1bde75b537172ab8dbd0
我试过使用 NPM 的 sha512,但它一直在散列错误的东西,即我应该得到一个字符串,但它一直返回对象。
所以在 PHP 我知道我可以执行任务 $hash = hash("sha512","my string for hashing");
如何在 nodejs 上执行此任务JavaScript
如果您使用的是节点:
> crypto.createHash('sha512').update('my string for hashing').digest('hex');
'4dc43467fe9140f217821252f94be94e49f963eed1889bceab83a1c36ffe3efe87334510605a9bf3b644626ac0cd0827a980b698efbc1bde75b537172ab8dbd0'
如果要使用浏览器Web CryptoAPI:
function sha512(str) {
return crypto.subtle.digest("SHA-512", new TextEncoder("utf-8").encode(str)).then(buf => {
return Array.prototype.map.call(new Uint8Array(buf), x=>(('00'+x.toString(16)).slice(-2))).join('');
});
}
sha512("my string for hashing").then(x => console.log(x));
// prints: 4dc43467fe9140f217821252f94be94e49f963eed1889bceab83a1c36ffe3efe87334510605a9bf3b644626ac0cd0827a980b698efbc1bde75b537172ab8dbd0