이전 :
AngularJS는 JavaScript 프레임 워크입니다. <cript> 태그를 통해 HTML 페이지에 추가 할 수 있습니다.
AngularJS는 지침을 통해 HTML을 확장하고 표현식을 통해 데이터를 HTML에 바인딩합니다.
AngularJS는 Google에서 홍보하는 우수한 JS 개발 프레임 워크입니다.
페이지 표시 :
암호화는 응용 프로그램에서 일반적입니다. 개인적으로 프론트 엔드에서 암호화 서명을 구현하는 것이 좋습니다 (프론트 엔드 암호화가 Zhihu : http://www.zhihu.com/question/2539382)
Base64, MD5 및 SHA1의 암호화 알고리즘에 대한 간단한 설명 :
1. Base64는 가역적이고 대칭 암호화 알고리즘입니다. Base64에는 64 개의 기본 문자로 구성된 기본 문자 세트가 있습니다.
Base64 암호화 원리 :
에이. Base64는 3 바이트 그룹이며 1 바이트는 8 비트 (비트)를 차지합니다.
비. 24 비트를 4 개의 그룹으로 나누고 각각 6 비트로 나눕니다.
기음. 그런 다음 두 자리 숫자의 각 그룹에 00을 추가하고 32 비트로 확장하여 4 바이트를 형성합니다.
2. MD5 서명은 돌이킬 수없는 메시지 다이제스트 알고리즘입니다. 즉, 암호화 할 수는 없습니다 (암호 텍스트에서 일반 텍스트로)
에이. 채우기 : 먼저, 비트 길이 쌍 512의 나머지 균형의 결과가 448과 동일하도록 정보를 채워야합니다.
비. 초기화 변수 : 초기 128 비트 값은 초기 시험 링크 변수입니다. 이 매개 변수는 첫 번째 작업 라운드에서 사용되며 Big-Endian Endian Endianness로 표현됩니다. 다음과 같습니다
기음. 처리 된 데이터 처리
디. 출력 : 출력은 A, B, C 및 D의 캐스케이드입니다.
3. SHA1 서명은 돌이킬 수없는 디지털 서명 알고리즘입니다 (Baidu : http://baike.baidu.com/view/1228622.htm) SHA1은 160 비트 메시지 다이제스트를 생성합니다.
에이. 채우기 : 먼저, 비트 길이 쌍 512의 나머지 균형의 결과가 448과 동일하도록 정보를 채워야합니다.
비. 보완 길이 : 소위 보체 길이는 필 작업이 수행 된 메시지 뒤에있는 원래 데이터의 길이를 채우는 것입니다.
기음. 사용 된 상수
디. 사용 된 기능 : SHA1에는 일련의 기능이 필요합니다. 각 함수 ft (0 <= t <= 79)는 32 비트 단어 b, c, d를 작동시키고 출력으로 32 비트 단어를 생성합니다.
이자형. 메시지 요약 계산 : 메시지 요약은 채우고 길이 교체 후 메시지를 사용하여 계산해야합니다.
로그인 제어 모듈 :
서비스 모듈 :
var encryption = angular.module ( '암호화', []); 암호화 .service ( 'md5', function () {var hexcase = 0; /* hex 출력 형식. 0- 소문자; 1- 대문자* /var b64pad = ""; /* base -64 패드 캐릭 문자 8 -ASCII; 16 -UNICODE*// *** 외부 통화 방법*/this.Hex_md5 = function (core_md5 (str2Binl, s.length*chrsz); Append Padding */x [Len >> 5] | = 0x80 << ((Len) % 32); X [(((Len + 64) >>>> 9) << 4) + 14] = Len; var A = 1732584193; var B = -271733879; var c = -1732584; for var d = 2717388; 0; i <x.length; var old = a; var oldb = b; var oldc = c; var Oldd = d; a = md5_ff (a, b, c, d, x], 7, -680876936); 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, b, c, d, x [i+ 4], 7, -17641897); 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); md5_ff (a, b, c, d, d x. 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); -1990404162); a = md5_ff (a, b, c, d, x [i+12], 7, 1804603682); d = md5_ff (d, a, b, b, c, x [i+13], 12, -40341101); c = md5_ff (c, d, a, b, x, x, x [i+14], 17. -1502002290); b = md5_ff (b, c, c, d, a, x [i+ 15], 22, 1236535329); -1069501632); c = md5_gg (c, d, a, b, x [i+ 1], 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], 5] -701558691); d = md5_gg (d, a, b, c, d, x [i+5], 5, -701558691); d = md5_gg (d, a, b, c, c, x [i+10], 9, 38016083); c = md5_gg (c, d, b, x [i x 15], 14. -660478335); b = md5_gg (b, c, d, a, a, x [i+4], 20, -405537848); -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, 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); -1926607734);a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);d = md5_gg(b, c, d, a, x[i+ 5], 4 , -378558);d = md5_gg(b, c, d, a, x[i+ 5], 4 , -378558);d = md5_gg (b, c, d, a, x [i+ 12], 20, -1926607734); a = md5_hh (a, b, c, d, x [i+ 5], 4, -37858); d = md5_hh (d, a, b, c, x [i+ 8], 11, -20222574463); md5_hh (c, d, a, b, x [i+11], 16, 1839030562); b = md5_hh (b, c, d, a, x [i+14], 23, -35309556); 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, C, C, D, A, X [I+ 10], 23, -1094730640); 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, -72221979); Md5_HH (b, c, d, a, a+, a++ 6], 23, 76029189); a = md5_hh (a, b, b, c, d, x [i+ 6], 23, 76029189); a = md5_hh (a, b, c, d, x [i+ 6], 23, 76029189); -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); 76029189); a = md5_hh (a, b, c, d, x [i+ 6], 23, 76029189); -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); -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, a, x, x, -57434055); a = md5_ii (a, b, c, d, x [i+12], 6, 170048571); d = md5_ii (d, a, b, c, x [i+3], 10, -1894986606); c = md5_ii (c, d, a -1051523); b = md5_ii (b, c, d, a, x [i+ 1], 21, -2054922799); a = md5_ii (b, c, d, a, x [i+ 1], 21, -2054922799); 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, x, x+13], 21, 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], 15]. 718787259); b = md5_ii (b, c, c, d, a, x [i+ 9], 21, -34348551); a = safe_add (a, olda); b = safe_add (b, oldb); c = safe_add (c, oldc); d = safe_add (d, b, c eteray); d);}}). service ( 'base64', function () {_ keystr = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+/="; // EncodingThis.encode를위한 공개 메소드 chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; 입력 = _utf8_encode (입력); while (i <input.length) {chr1 = input.charcodeat (i ++); charcodeat (i ++); chr3 = input.charcodeat (i ++); chr1 >> << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | _keystr.charat (enc2) + _keyst.charat (enc3) + _keyst.charat (enc4);} return output;} // UTF-8 ENCoding_utf8_encode = function (string)} // string = string.replace (// r/n/g, "/n"; Var Utftext =; for n = 0; n ++) {var c = string.charcodeat (n); if (c <128) {utftext += string.fromcharcode (c);} else if ((c> 127) && (c <2048)) {utftext += string.fromcharcode ((c >> 6) | 192); utftext. 128)} else {utftext += string.fromcharcode ((c >> 12) | 224); utftext += string.fromcharcode ((c >> 6) & 63) | hexcase = 0; BINB2HEX (core_sha1 (str2binb (s), s.length * chrsz);}/ * * Big-endian 단어 배열의 SHA-1을 계산하십시오. */function core_sha1 (X, Len) {/ * Append Padding */x [len >> 5] | = 0x80 << (24-len % 32); >> 9) << 4) + 15] = len; var w = array (80); var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; var e = -1009589776; var i = 0; i <x. a; var Oldb = b; var Oldc = c; var Oldd = d; var Old = e; for (var j = 0; j <80; 5), sha1_ft (j, b, c, d)), safe_add (safe_add (e, w [j]), sha1_kt (j)); e = d; d = c; c = rol (b, 30); b = a; safe_add (d, old); e = safe_add (e, old);} return array (a, b, c, d, e);}}).파일 구조 :
위는 편집자가 소개 한 AngularJS 사용자 정의 서비스의 구현 시그니처 및 암호화입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!