浏览器原生 Web Crypto API 实现 SHA256 Hash 加密

写在前面

在我上一篇文章 《node 后端和浏览器前端,有关 RSA 非对称加密的完整实践, 前后端匹配的代码演示》 中,我们使用 浏览器原生 Web Crypto API 实现了 RSA 的加密算法。

但是,在我之前的 《我设计的一个安全的 web 系统用户密码管理流程》 代码设计中,还涉及到 hash 计算,而目前,常见的 hash 计算,就是 SHA256 了。同样的,我们可以使用 Web Crypto API 来实现,而不必借助第三方库。

SHA 256 的实现方法

闲言少叙,直接展示代码:

js 复制代码
async function SHA256 (data) {
    const encoder = new TextEncoder();
    const buffer = encoder.encode(data);
    const hashBuffer = await crypto.subtle.digest('SHA-256', buffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

小结

我们可以看到,浏览器原生 Web Crypto API 可以实现 RSA 的非对称加密,以及 SHA256 Hash 算法,当然,也支持对称加密算法等,大家可以自己去尝试一下。

不过需要注意的是,由于 md5、 sha1 等算法已经被证明是不安全的,因此 Web Crypto API 并没有支持。我个人的建议是,在浏览器端,我们要计算 hash 的话,还是使用 sha256 吧。

以上!祝各位看官开心!我最近看了一下,我居然4年没有写博客了,肯定是因为我年纪大了,懈怠了。各位看官不吝啬小手点个小赞的话,我会多多写博文的哦!谢谢大家。

相关推荐
乘风gg10 小时前
多 Agent 不是万能的!搞懂这 5 个原则,少走 1 年弯路!
前端·agent·ai编程
猩猩程序员11 小时前
Vercel 推出 Agent 框架 Eve:让 AI Agent 像写 Web 应用一样简单
前端
爱读源码的大都督11 小时前
Claude Code源码分析(三):为什么系统提示词中需要有tools呢?
前端·人工智能·后端
爱勇宝11 小时前
Claude Code 被曝暗藏“隐形检测”代码:封代理不是最可怕的,可怕的是你根本不知道它在干什么
前端·后端·程序员
小牛不牛的程序员11 小时前
我用 Claude Code 半天撸完了一个完整网站,AI 编程到底提升了多少效率?
前端
东风破_11 小时前
JavaScript 面试常考的字符串算法:从反转字符串到回文判断
前端·javascript
ITOM运维行者12 小时前
从零搭建企业级服务器监控体系:踩坑实录与架构设计
前端·后端
monologues12 小时前
深入 Vue 3 源码:响应式系统的精妙设计与编译优化
前端
hunterandroid12 小时前
Paging 3 分页:从手动分页到声明式加载
前端
用户40993225021212 小时前
Vue状态管理入门第四章:组合式store和SSR风险
前端·vue.js·后端