发布时间:2025-12-11 00:42:11 浏览次数:1
小程序如何使用md5
1、下载MD5源文件(JS);
2、在小程序模块中使用require引入外部模块;也可以在app.js中直接全局引入md5.js文件。
因为源md5.js中没有对模块进行输出,如果使用require需要export,所以在md5.js中需要加入以下代码:
module.exports={hexMD5:hex_md5,//需要输出的加密算法,我这边只写了我需要得两种b64Md5:b64_md5,}在js文件中使用require引入md5:
推荐学习:小程序开发
constmd5=require('../../assets/js/md5/md5.js');使用:
letb64=md5.b64Md5(code);//code需要加密的数据
下面是我的文件结构:
/**AJavaScriptimplementationoftheRSADataSecurity,Inc.MD5Message*DigestAlgorithm,asdefinedinRFC1321.*Version2.1Copyright(C)PaulJohnston1999-2002.*Othercontributors:GregHolt,AndrewKepert,Ydnar,Lostinet*DistributedundertheBSDLicense*Seehttp://pajhome.org.uk/crypt/md5formoreinfo.*//**Configurablevariables.Youmayneedtotweakthesetobecompatiblewith*theserver-side,butthedefaultsworkinmostcases.*/varhexcase=0;/*hexoutputformat.0-lowercase;1-uppercase*/varb64pad="";/*base-64padcharacter."="forstrictRFCcompliance*/varchrsz=8;/*bitsperinputcharacter.8-ASCII;16-Unicode*//**Thesearethefunctionsyou'llusuallywanttocall*Theytakestringargumentsandreturneitherhexorbase-64encodedstrings*/functionhex_md5(s){returnbinl2hex(core_md5(str2binl(s),s.length*chrsz));}functionb64_md5(s){returnbinl2b64(core_md5(str2binl(s),s.length*chrsz));}functionstr_md5(s){returnbinl2str(core_md5(str2binl(s),s.length*chrsz));}functionhex_hmac_md5(key,data){returnbinl2hex(core_hmac_md5(key,data));}functionb64_hmac_md5(key,data){returnbinl2b64(core_hmac_md5(key,data));}functionstr_hmac_md5(key,data){returnbinl2str(core_hmac_md5(key,data));}/**Performasimpleself-testtoseeiftheVMisworking*/functionmd5_vm_test(){returnhex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72";}/**CalculatetheMD5ofanarrayoflittle-endianwords,andabitlength*/functioncore_md5(x,len){/*appendpadding*/x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;vara=1732584193;varb=-271733879;varc=-1732584194;vard=271733878;for(vari=0;i<x.length;i+=16){varolda=a;varoldb=b;varoldc=c;varoldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);}returnArray(a,b,c,d);}/**Thesefunctionsimplementthefourbasicoperationsthealgorithmuses.*/functionmd5_cmn(q,a,b,x,s,t){returnsafe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}functionmd5_ff(a,b,c,d,x,s,t){returnmd5_cmn((b&c)|((~b)&d),a,b,x,s,t);}functionmd5_gg(a,b,c,d,x,s,t){returnmd5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}functionmd5_hh(a,b,c,d,x,s,t){returnmd5_cmn(b^c^d,a,b,x,s,t);}functionmd5_ii(a,b,c,d,x,s,t){returnmd5_cmn(c^(b|(~d)),a,b,x,s,t);}/**CalculatetheHMAC-MD5,ofakeyandsomedata*/functioncore_hmac_md5(key,data){varbkey=str2binl(key);if(bkey.length>16)bkey=core_md5(bkey,key.length*chrsz);varipad=Array(16),opad=Array(16);for(vari=0;i<16;i++){ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}varhash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);returncore_md5(opad.concat(hash),512+128);}/**Addintegers,wrappingat2^32.Thisuses16-bitoperationsinternally*toworkaroundbugsinsomeJSinterpreters.*/functionsafe_add(x,y){varlsw=(x&0xFFFF)+(y&0xFFFF);varmsw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}/**Bitwiserotatea32-bitnumbertotheleft.*/functionbit_rol(num,cnt){return(num<<cnt)|(num>>>(32-cnt));}/**Convertastringtoanarrayoflittle-endianwords*IfchrszisASCII,characters>255havetheirhi-bytesilentlyignored.*/functionstr2binl(str){varbin=Array();varmask=(1<<chrsz)-1;for(vari=0;i<str.length*chrsz;i+=chrsz)bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);returnbin;}/**Convertanarrayoflittle-endianwordstoastring*/functionbinl2str(bin){varstr="";varmask=(1<<chrsz)-1;for(vari=0;i<bin.length*32;i+=chrsz)str+=String.fromCharCode((bin[i>>5]>>>(i%32))&mask);returnstr;}/**Convertanarrayoflittle-endianwordstoahexstring.*/functionbinl2hex(binarray){varhex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";varstr="";for(vari=0;i<binarray.length*4;i++){str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF);}returnstr;}/**Convertanarrayoflittle-endianwordstoabase-64string*/functionbinl2b64(binarray){vartab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";varstr="";for(vari=0;i<binarray.length*4;i+=3){vartriplet=(((binarray[i>>2]>>8*(i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&0xFF);for(varj=0;j<4;j++){if(i*8+j*6>binarray.length*32)str+=b64pad;elsestr+=tab.charAt((triplet>>6*(3-j))&0x3F);}}returnstr;}module.exports={hexMD5:hex_md5,b64Md5:b64_md5,}感谢各位的阅读!关于小程序使用md5的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!