중국시가넷 - 개인 서명 - WeChat 미니 프로그램을 암호화하는 방법

WeChat 미니 프로그램을 암호화하는 방법

1. MD5 소스 파일(JS)을 다운로드합니다.

2. 외부 모듈을 도입하기 위해 미니 프로그램 모듈에서 md5.js를 인덱스에 직접 도입할 수도 있습니다. .html 문서.

소스 md5.js에 출력용 팀 모듈이 없기 때문에 require를 사용한다면 내보내기를 해야 하므로 md5.js에 다음 코드를 추가해야 합니다.

module.exports = {

p>

hexMD5: hex_md5, //출력해야 할 암호화 알고리즘, 여기에 필요한 두 가지만 썼습니다

b64Md5: b64_md5,

}

md5를 도입하려면 js 파일에서 require를 사용하세요.

const md5 = require('../../assets/js/md5/ md5.js');

사용:

let b64 = md5.b64Md5(code); //코드는 데이터를 암호화해야 합니다.

다음은 내 파일 구조:

md5.js 코드는 다음과 같습니다;

/*

* RSA Data Security, Inc. MD5 메시지의 JavaScript 구현

* RFC 1321에 정의된 다이제스트 알고리즘.

* 버전 2.1 Copyright (C) Paul Johnston 1999 - 2002.

* 기타 기여자: Greg Holt, Andrew Kepert, Ydnar, Lostinet

* BSD 라이센스에 따라 배포됨

* t) 참조

{

반환 (num << cnt) | (num >>> ( 32 - cnt))

}

/*

* 문자열을 리틀 엔디안 배열로 변환 단어

* chrsz가 ASCII인 경우 255보다 큰 문자는 해당 하이바이트를 자동으로 무시합니다.

*/

function str2binl(str)

{

var bin = 배열 ​​();

var 마스크 = ( 1 << chrsz) -

1;

for( var i =

0; i < str.length * chrsz; i += chrsz)

bin[i>> 5] |= (str.charCodeAt(i / chrsz) & 마스크) << (i% 32);

bin 반환;

}

/*

* 변환 리틀 엔디안 단어 배열을 문자열로 변환

*/

function binl2str(bin)

{

var str =

"";

var 마스크 = ( 1 << chrsz) -

1;

for( var i =

0; i < bin.length *

32; i += chrsz)

str

+= String.fromCharCode((bin[i>> 5] >>> (i %

32)) & 마스크);

return str;

}

/*

* 리틀 엔디안 단어 배열을 16진수 문자열로 변환합니다.

*/

function binl2hex (바이너레이)

{

var hex_tab = hexcase ?

"0123456789ABCDEF" :

"0123456789abcdef";

var str =

"";

for( var i =

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);

}

return str;

}

/*

* 리틀 엔디안 배열 변환 단어를 base-64 문자열로 변환

*/

function binl2b64(binarray)

{

var tab =

"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

var str =

"";

for( var i =

0; i < binarray.length *

4; i +=

3)

{

var 삼중항 = (((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( var j =

0; j <

4; j++)

{

if(i *

8 + j *

6 > binarray.length *

32) str += b64pad;

else str += tab.charAt((삼중항 >>

6*( 3-j)) &

0x3F);

}

}

문자열을 반환;

}

module.exports = {

hexMD5: hex_md5,

b64Md5: b64_md5,

}