Cómo cifrar miniprogramas de WeChat
2. Utilice require en el mini módulo del programa para introducir módulos externos. También puede introducir directamente el archivo md5.js globalmente en index.html.
Dado que no hay salida del módulo de equipo en el archivo fuente md5.js, si usa require, debe exportarse, por lo que debe agregar el siguiente código a md5.js: p>
module.exports = {
hexMD5: hex_md5, //necesario para exportar el algoritmo de cifrado, mi lado solo escribió Necesito obtener dos tipos
b64Md5: b64_md5 ,
}
En el archivo js, use require para introducir md5:
const md5 = require('... /... /asset_md5, //necesario para exportar el algoritmo de cifrado.. .. /... /assets/js/md5/md5.js'
Uso:
let b64 = md5. b64Md5(code); //código de datos a cifrar
La siguiente es mi estructura de archivos:
El código de md5.js es el siguiente;
/*
* RSA Data Security , Inc. Mensajes MD5 definidos en RFC 1321
* Implementación de JavaScript del algoritmo de resumen.
* Versión 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Otros colaboradores: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Publicado bajo licencia BSD
* Ver t)
* Ver licencia BSD. >* Ver t)
{
return (num lt; lt; cnt) | (num gt; gt; gt; ( 32 - cnt)); p>}
/*
* Convertir una cadena en una matriz de caracteres little-endian
* Si chrsz está codificado en ASCII, carácter gt 255 hi; Los bytes serán ignorados.
*/
función str2binl(str)
{
var bin = Array();
var máscara = ( 1 lt; lt; chrsz) -
1;
for( var i =
0; i lt; str.length * chrsz ; i = chrsz)
bin[i gt; 5] |= (str.charCodeAt(i / chrsz) amp; máscara) lt; p>return bin;
}
/*
* Convertir matriz de palabras little-endian en cadena
*/
función binl2str(bin)
{
var str =
"";
var máscara = ( 1 lt ; lt; chrsz) -
1;
for( var i =
0; i lt; bin.length *
32; i = chrsz)
str = String.fromCharCode((bin[igt;gt; 5] gt;gt;gt; (i
32)) amp; máscara) ;
return str;
}
/*
* Convierte una matriz de palabras little-endian a una cadena hexadecimal.
*/
función binl2hex(binarray)
{
var hex_tab = hexcase ?
"0123456789ABCDEF ":
"0123456789abcdef";
var str =
"";
for( var i =
0; i lt; binarray.length *
4; i )
{
str = hex_tab.charAt((binarray[igt;gt; 2] gt; gt; ((i 4)* 8 4)) amplificador
0xF)
hex_tab.charAt((binarray[igt;gt; 2] gt;gt ; ((i 4)* 8 4)) amp;
0xF)charAt((binarray[igt;gt; 2] gt;gt; ((i 4)* 8)) amp; p> p>
0xF);
}
return str;
}
/*
* Convertir matriz de palabras little-endian a cadena base 64
*/
función binl2b64(binarray)
{
var tab =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /" ;
var str =
"";
for( var i =
0; i lt; binarray.length*
4; i =
3)
{
var triplete = (((binarray[i gt; gt;
2] gt; gt;
8 * ( i 4)) amp;
0xFF) lt ; lt;
16)
| (((binarray[i 1 gt; gt;
2] gt; gt;
8 * ((i 1) 4)) amplificador
0xFF)
| (((binarray[i 2] gt; gt;
| > 8)) binarray[i 2 gt;
2] gt;
8 * ((i 2) 4)) amp; > 0xFF);
for( var j =
0; j lt;
4; j )
{
if(i *
8 j *
6 gt; binarray.
else str = tab.charAt((triplet gt; gt;
6*( 3-j)) amp;
0x3F);
}
}
return str;
}
module.exports = {
hexMD5: hex_md5,
b64Md5: b64_md5,
}.