手机版

nodejs开发微信小程序实现密码加密

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

微信小程序开发-实现密码加密具体步骤:

在utils中的util.js文件中增加函数实现字符串转换为16进制加密后的字符串:

函数encodeuf8(s){ var I,r=[],c,x;for(I=0;(c=s . charcodeat(I))0x 80)r . push(c);else if(c0x 800)r . push(0xc 0(c 60x1F),0x 80(c0x3F));else {if ((x=c ^0xD800) 10==0) //对四字节UTF-16转换为unicodec=(x 10)(s . charcodeat(i)^0x DC 00)0x 10000,r.push(0xF0 (c 180x7),0x 80(c 120x3f));else r . push(0xe 0(c 120xF));r.push(0x80 (c 60x3F),0x 80(c0x3F));};返回r;};//字符串加密成十六进制字符串函数sha1(s){ var数据=新uint 8数组(encodeuf8(s))var I,j,t;var l=((data.length 8) 6 4) 16,s=新uint 8数组(l 2);s . set(新uint 8数组(数据。缓冲区),s=新的uint 32数组(s . buffer);对于(t=新的DataView(s.buffer),I=0;我。I)s[I]=t . getuint 32(I ^ 2);s[数据。长度2]|=0x 80(24-(数据。长度3)* 8);s[l-1]=数据。长度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 c | n(32-c);},k=[1518500249,1859775393,-1894007588,-899497514],m=[1732584193,-271733879,null,null,-1009589776];m[2]=~m[0],m[3]=~ m[1];for(I=0;I s . lengthi=16){ var o=m . slice(0);for(j=0;j 80j )w[j]=j 16?s[I j]: rol(w[j-3]^ w[j-8]^ w[j-14]^ w[j-16],1),t=rol(m[0],5)f[j/20 | 0]()m[4]w[j]k[j/20 | 0]| 0,m[1]=rol(m[1],30),m.pop(),m . unshift(t);for(j=0;j5;j)m[j]=m[j]o[j]| 0;};t=新数据视图(新Uint32Array(m)).缓冲);for(var I=0;i5;I)m[I]=t . getuint 32(I ^ 2);var hex=数组。原型。地图。呼叫(新Uint8Array(新Uint32Array(m)).缓冲区),函数{返回(e 16?0 ' : ' ')e . ToString(16);}).join(' ');返回十六进制;};导出函数

模块。导出={ format time : format time,sha1:sha1}这样就可以在其他页面中调用了

var util=require('././utils/util。js’)util。sha1(' 123456 ')以密码为123456 作为示例,在线加密结果

小程序中调用结果

加密结果是相同的

版权声明:nodejs开发微信小程序实现密码加密是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。