相关疑难解决方法(0)

如何在 JS 中使用 SHA256 散列字符串?

描述

我希望在 Javascript 中使用 SHA256 在本地散列一个字符串。我一直在环顾四周,认为会有某种官方库或函数,但我发现的只是大量不同的项目,每个项目都有不同的脚本,而且我不太确定要信任的脚本(因为我不是专家,绝对没有资格评估它们)或如何实施它们。 编辑:我需要文本输出,而不是十六进制,对不起,如果我在发布原始问题时没有解释。

代码

这是我迄今为止尝试过的:

async function sha256(message) {
  // encode as UTF-8
  const msgBuffer = new TextEncoder('utf-8').encode(message);

  // hash the message
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);

  // convert ArrayBuffer to Array
  const hashArray = Array.from(new Uint8Array(hashBuffer));

  // convert bytes to hex string
  const hashHex = hashArray.map(b => ('00' + b.toString(16)).slice(-2)).join('');
  console.log(hashHex);
  return hashHex;
}
sha256(passwordInput); 
Run Code Online (Sandbox Code Playgroud)

控制台输出:

未捕获(承诺)类型错误:无法读取未定义的属性“摘要”

我是 javascript 新手,我愿意接受所有建议,所以是的。

更新

尽管您的大部分建议都有效,但对于那些希望使用 Web Crypto API 的人来说,答案就在第 5 行。我需要crypto.subtle.digest改为window.crypto.subtle.digest

javascript hash sha256

7
推荐指数
3
解决办法
2万
查看次数

我必须在 Javascript 中使用 HMAC sha256 散列文本

我正在尝试在 Javascript 中使用 HMAC SHA-256 散列文本我有 [secret Ket]

我有 Ruby 代码要散列,但我需要 Javascript 代码来散列文本

红宝石代码

OpenSSL::HMAC.hexdigest(
  'sha256', # hash function
  'HFgGgIOaLiyFgUhIjirOoqxloHuiLNr20jkhXrNw', # secret key (keep safe!)
  current_user.email # user's email address
)
Run Code Online (Sandbox Code Playgroud)

请建议我任何解决方案。

javascript

4
推荐指数
2
解决办法
7311
查看次数

在 JavaScript 中计算 HMAC_SHA256?

我想使用 JavaScript为某些keymessage前端计算基于 SHA256 的 HMAC 。在 Python 中很容易完成,如下所示:

import hmac
h = hmac.new(b'key', b'message', 'sha256')
print(h.hexdigest())
Run Code Online (Sandbox Code Playgroud)

我在 NodeJS 中搜索并找到了一些东西,但不能在前端做同样的事情(我的意思是在用户的浏览器中),我想我需要捆绑所需的库并做这些事情,但不知道如何做。

javascript hash frontend sha256 hmac

4
推荐指数
1
解决办法
1848
查看次数

标签 统计

javascript ×3

hash ×2

sha256 ×2

frontend ×1

hmac ×1