介绍
这篇文章主要介绍微信小程序sha1如何实现密码加密,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强>微信小程序sha1实现密码加密实例详解强>
在跑龙套中的实效。js文件中增加函数实现字符串转换为16进制加密后的字符串
function encodeUTF8 (s), { ,var 我,r =, [], c, x; ,for (小姐:=,0;,小姐:& lt;, s.length;,我+ +) if 才能;((c =, s.charCodeAt(我)),& lt;, 0 x80), r.push (c); else 才能;if (c & lt;, 0 x800), r.push (+ 0 xc0 (c 在祝辞,6,,,0 x1f),, 0 x80 +, (c ,, 0 x3f)); else {才能 ,,if ((=x c ^, 0 xd800),在祝辞,10,==,0),//对四字节utf - 16转换为Unicode ,,,c =, (x & lt; & lt;, 10), +, (s.charCodeAt (+ + i), ^, 0 xdc00), +, 0 x10000, ,,,,r.push (+ 0 xf0 (c 在祝辞,18,,,0 x7),, 0 x80 +, (c 在祝辞,12,,,0 x3f)); ,,else r.push (+ 0 xe0 (c 在祝辞,12,,,0 xf)); ,,r.push (+ 0 x80 (c 在祝辞,6,,,0 x3f),, 0 x80 +, (c ,, 0 x3f)); ,,}; ,return r; };//,字符串加密成,hex 字符串 function sha1 (s), { ,var data =, new Uint8Array (encodeUTF8 (s)) ,var i, j, t; ,var l =,((时间+ data.length 8),在祝辞祝辞,6,& lt; & lt;, 4), +, 16日,s =, new Uint8Array (l & lt; & lt;, 2); ,s.set (new Uint8Array (data.buffer)),, s =, new Uint32Array (s.buffer); ,for (t =, new DataView (s.buffer),小姐:=,0;,小姐:& lt;, l;,我+ +)s[我],=,t.getUint32(小姐:& lt; & lt;, 2); ,年代[data.length 在祝辞,2],|=,0 x80 & lt; & lt;,(24,安康;(时间,data.length 3), *, 8); ,年代[l 安康;1],=,data.length & lt; & lt;, 3; ,var w =, [],, f =, ( function 才能;(),{,return m [1],,, m [2], |, ~ m [1],,, m [3];,}, function 才能;(),{,return m [1], ^, m [2], ^, m [3];,}, function 才能;(),{,return m [1],,, m [2], |, m [1],,, m [3], |, m [2],,, m [3];,}, function 才能;(),{,return m [1], ^, m [2], ^, m [3];,} ,,rol =, function (n, c), {, return n & lt; & lt;, c |, n 在祝辞祝辞,(32,安康;c),,}, k 才能=,(1518500249,,1859775393,,-1894007588,,-899497514), m 才能=,(1732584193,,-271733879,,空,,空,,-1009589776); ,m [2]=, ~ m [0], m [3],=, ~ m [1]; ,for (小姐:=,0;,小姐:& lt;, s.length;,小姐:+=,16),{ var 才能;o =, m.slice (0); for 才能;(j =, 0;, j & lt;, 80;, j + +) ,,w [j],=, j & lt;, 16, ?, s[小姐:+,j],:,高校(w (j 作用;3),^,w (j 作用;8),^,w (j 安康;14),^,w (j 安康;16),,1), ,,,t =,高校(m [0],, 5), +, f [/j 20, |, 0] (), +, m [4], +, w [j], +, k(时间/j 20, |, 0], |, 0, ,,,m[1],=,高校(30 m [1],,),, m.pop (),, m.unshift (t); for 才能;(j =, 0;, j & lt;, 5。, j + +) m [j],=, m [j], +, o [j], |, 0; ,};=,,t  new DataView (new Uint32Array (m) .buffer); ,for (var 小姐:=,0;,小姐:& lt;, 5;,我+ +)m[我],=,t.getUint32(小姐:& lt; & lt;, 2); ,var hex =, Array.prototype.map.call (new Uint8Array (new Uint32Array (m) .buffer),, function (e), { return 才能;(e & lt;, 16, ?,“0”,:,“,“), +, e.toString (16); ,}). join (“;”); ,return 十六进制; };
导出函数
module.exports =, { ,formatTime: formatTime, sha1: sha1 }
这样就可以在其他页面中调用了
var util =,需要(& # 39;. ./. ./跑龙套util.js& # 39;) util.sha1 (“123456“)
,以密码为,null