欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用JavaScript計算SHA-256?hash值詳解

 更新時間:2024年10月29日 09:53:39   作者:前端后花園  
SHA-256是一種常用的散列函數(shù),廣泛應(yīng)用于多種安全程序和協(xié)議中,如TLS、SSL、SSH、PGP和比特幣等,在JavaScript中,可以通過原生API輕松計算SHA-256的hash值,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

SHA-256算法是一個廣泛使用的散列函數(shù),它產(chǎn)生256位的hash值。它用于許多安全應(yīng)用程序和協(xié)議,包括 TLS 和 SSL、 SSH、 PGP 和比特幣。

在 JavaScript 中計算 SHA-256 hash值使用原生 API 很容易,但是瀏覽器和 Node.js 之間有一些區(qū)別。由于瀏覽器實現(xiàn)是異步的,所以所提供的兩個示例都使用異步promise返回。

瀏覽器實現(xiàn)

使用 Web Crypto API 中 SubtleCrypto 接口,SubtleCrypto.digest() 接口會返回給定數(shù)據(jù)的摘要,摘要以ArrayBuffer 的形式返回,需要將其轉(zhuǎn)換為十六進(jìn)制字符串。

const hashValue = val =>
crypto.subtle
  .digest('SHA-256', new TextEncoder('utf-8').encode(val))
  .then(h => {
    let hexes = [],
      view = new DataView(h);
    for (let i = 0; i < view.byteLength; i += 4)
      hexes.push(('00000000' + view.getUint32(i).toString(16)).slice(-8));
    return hexes.join('');
  });

hashValue(
JSON.stringify({ coder: "fe-garden", subject: 'sha-256', type: { module: "nodejs" } })
).then(console.log);
// '6c0225ba749b8701a5d051d02faafb1fdadc9457a2eaf81bf89e3353a6aaa4f1'

Nodejs實現(xiàn)

使用node 內(nèi)置的加密庫crypto實現(xiàn)。

import { createHash } from "crypto";

const hashValue = (val) =>
new Promise((resolve) => {
  const hash = createHash("sha256").update(val).digest("hex");
  resolve(hash);
});

hashValue(JSON.stringify({ coder: "fe-garden", subject: 'sha-256', type: { module: "nodejs" } })).then(
console.log
);
//6c0225ba749b8701a5d051d02faafb1fdadc9457a2eaf81bf89e3353a6aaa4f1

注意

  • 上述兩個實現(xiàn)互不兼容,不能在 Node.js 中使用瀏覽器實現(xiàn),反之亦然;

  • 兩種實現(xiàn)應(yīng)該為相同的輸入產(chǎn)生相同的結(jié)果。

總結(jié)

以上就是利用js 實現(xiàn)sha256方法,包括瀏覽器版本的javascript 使用sha256算法,和Nodejs 中js計算sha256Hex 方法,希望對你有所幫助。

參考資料

到此這篇關(guān)于如何使用JavaScript計算SHA-256 hash值的文章就介紹到這了,更多相關(guān)JS計算SHA-256 hash值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論