亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何使用JavaScript計(jì)算SHA-256?hash值詳解

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

前言

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

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

瀏覽器實(shí)現(xiàn)

使用 Web Crypto API 中 SubtleCrypto 接口,SubtleCrypto.digest() 接口會(huì)返回給定數(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實(shí)現(xiàn)

使用node 內(nèi)置的加密庫(kù)crypto實(shí)現(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

注意

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

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

總結(jié)

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

參考資料

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

相關(guān)文章

最新評(píng)論