HTML中常用HASH算法使用笔记

一、前言

  出于安全考虑,对于网页端传输的敏感数据(例如:密码)不能明文传输,而是需要加密传输。

  而且出于网页端的特殊性,加密方式既不能使用对称加密,更不能使用非对称加密(密钥获取方式会暴露),而只能使用HASH算法:前后端通过相同HASH算法,获取目标内容的签名,通过签名是否匹配来推断所传输的内容是否匹配。

  常用HASH算法按照复杂程度依此为:MD5、SHA-1、SHA-256、Keccak256、SHA-512。国密 SM3 对标 SHA-256。

  出于安全考虑,MD5方式已不建议使用,推荐使用的是 SM3 或 SHA-256 算法。

二、技术线路

  对于 SHA-256 推荐使用的 js 库是 crypto-js,而 SM3 推荐使用的是 sm-crypto。

三、使用 Demo
(1) crypto-js
html 复制代码
	<script type="text/javascript" src="crypto-js-4.1.1.min.js"></script>
	<script type="text/javascript">
		var src = "1、、2。。3,,4::5??6";
		var sha256 = CryptoJS.SHA256(src);
		。。
		document.write("<br>+ sha256 : ", sha256.toString());
		。。
	</script>

  网页输出效果:

bash 复制代码
+ src    : 1、、2。。3,,4::5??6
+ sha256 : f2abb160ac38fc95ae9d4bbc3d183c7ddc7fe1df827ee1b413e7c62fd77a0649
(2) sm-crypto
html 复制代码
	<script type="text/javascript" src="sm3.js"></script>
	<script type="text/javascript">
		var src = "1、、2。。3,,4::5??6";
		var sm3 = sm3(src);
		。。
		document.write("<br>+ sm3    : ", sm3.toString());
		。。
	</script>

  网页输出效果:

bash 复制代码
+ src    : 1、、2。。3,,4::5??6
+ sm3    : a22476416a5b1b897553602c4d213b4ae6796911a40fb1b3f3772d67527a6db4
(3) jquery-md5 (old style)
html 复制代码
	<script type="text/javascript" src="jquery-3.7.1.min.js"></script>
	<script type="text/javascript" src="jquery.md5.js"></script>
	<script type="text/javascript">
		var src = "1、、2。。3,,4::5??6";
		var md5= $.md5(src);
		。。
		document.write("<br>+ md5    : ", md5.toString());
		。。
	</script>

  网页输出效果:

bash 复制代码
+ src    : 1、、2。。3,,4::5??6
+ md5    : 9eb6b2e6c5000af57667a42a8b4c0189
四、补充

  对于后端HASH算法,JCE(Java Cryptography Extension)更丰富:SHA系(SHA-1、SHA-256、SHA-512)和 MD系(MD2、MD5)等。

  需要注意,JSE中不包含国密(SM系)。国密需引入 Bouncy Castle 提供器。

  值得一提的是,Bouncy Castle 还提供了号称 SHA 3代算法Keccak。其中 Keccak-256 是 SHA-256 的升级版。但遗憾的是在前端似乎还没有js实现。

【END】

相关推荐
panxianren3 小时前
Bun 1.4 的 bun test --parallel 将 4 秒的测试套件缩短到约 1 秒
java·javascript
可乐鸡翅yeah_6 小时前
FFmpeg 生成 HLS 独立分片 independent‑segments 参数到底有什么用
javascript·ffmpeg·音视频·safari·m3u8
福兮说6 小时前
canvas 旋转图片的六个坑:四角被裁、Math.ceil 多出 1px 黑边、JPG 角发黑、翻转方向反了
前端·javascript·图像处理·canvas
念何架构之路7 小时前
zap采样器与性能优化内幕
算法·性能优化·哈希算法
Ai-_Man7 小时前
您您这可以把Grok的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑
传人once7 小时前
多图片上传预览功能如何写
前端·css·html·jquery·html5
liangshanbo12158 小时前
JavaScript 异步核心主线
javascript·事件循环·异步操作
传人once9 小时前
悬停旋转放大和位移效果如何写
javascript·css·动画
默_笙10 小时前
🍔 中间件不只是打日志:四个钩子、一次短路,和自带的工具
前端·javascript
Dovis(誓平步青云)11 小时前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑