如何在浏览器的JavaScript中计算字符串的SHA哈希值

3

我对JavaScript非常陌生。

我认为我知道的

  • 有前端模块CryptoJS
  • 谷歌提供了一个Closure Library

我的尝试

但我的问题是

  • 浏览器上是否有本地加密库?
2个回答

7

有一个本地浏览器加密技术。

以下是你所需的代码示例:

const text = 'An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.';

async function digestMessage(message) {
  const encoder = new TextEncoder();
  const data = encoder.encode(message);
  const hash = await crypto.subtle.digest('SHA-256', data);
  return hash;
}

digestMessage(text)
  .then(digestBuffer => console.log(digestBuffer.byteLength));

以上示例可在此处找到,这是一个不错的浏览器加密起点。


请将英文翻译成中文。只返回翻译后的文本内容:返回字符串而不是数组缓冲的示例:https://gist.github.com/technikhil314/40f3c41e1039f4c7964843e47a9f25fc - undefined

0

关于:“浏览器上是否有本地加密库?”

您可以使用CDN库。

https://cdnjs.com/libraries/crypto-js

请将以下脚本标签引用到您的HTML中:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js" integrity="sha512-E8QSvWZ0eCLGk4km3hxSsNmGWbLtSCSUcewDQPQWZF6pEU8GlT8a5fF32wOl1i8ftdMhssTrF/OhyGWwonTcXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

如何使用库中的方法,请参考下面的网站:

https://cryptojs.gitbook.io/docs/

以下页面展示了一个例子,说明我的建议来自哪里:

https://codepen.io/omararcus/pen/QWwBdmo


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接