เขียนก่อน:
AngularJS เป็นกรอบ JavaScript สามารถเพิ่มไปยังหน้า HTML ผ่านแท็ก <Script>
AngularJS ขยาย HTML ผ่านคำสั่งและผูกข้อมูลกับ HTML ผ่านนิพจน์
AngularJS เป็นกรอบการพัฒนา JS ที่ยอดเยี่ยมที่ได้รับการส่งเสริมโดย Google ...
หน้าจอแสดงผล:
การเข้ารหัสเป็นเรื่องธรรมดาในแอปพลิเคชัน โดยส่วนตัวฉันขอแนะนำให้ใช้ลายเซ็นการเข้ารหัสที่ส่วนหน้า (ไม่ว่าจะจำเป็นต้องมีการเข้ารหัสส่วนหน้าจาก Zhihu: http://www.zhihu.com/question/25539382)
คำอธิบายสั้น ๆ ของอัลกอริทึมการเข้ารหัสของ Base64, MD5 และ SHA1:
1. BASE64 เป็นอัลกอริทึมการเข้ารหัสแบบย้อนกลับและสมมาตร Base64 มีชุดอักขระพื้นฐานประกอบด้วย 64 อักขระพื้นฐาน
Base64 หลักการเข้ารหัส:
. Base64 เป็นกลุ่ม 3 ไบต์และหนึ่งไบต์มี 8 บิต (บิต)
ข. แบ่ง 24 บิตออกเป็นสี่กลุ่มแต่ละกลุ่มมี 6 บิต
ค. จากนั้นเพิ่ม 00 ในแต่ละกลุ่มที่สูงสองหลักขยายเป็น 32 บิตสร้างสี่ไบต์
2. MD5 Signature เป็นอัลกอริทึมการย่อยข้อความที่กลับไม่ได้ นั่นคือมันไม่สามารถถอดรหัสได้ (จาก ciphertext ไปยัง PlainText
. เติม: ก่อนอื่นต้องกรอกข้อมูลเพื่อให้ผลลัพธ์ของยอดคงเหลือที่เหลืออยู่ของความยาวบิตคู่ 512 เท่ากับ 448;
ข. ตัวแปรการเริ่มต้น: ค่าเริ่มต้น 128 บิตเป็นตัวแปรลิงค์ทดลองเริ่มต้น พารามิเตอร์เหล่านี้ใช้ในรอบแรกของการดำเนินการและแสดงใน Endianness Endianness ขนาดใหญ่-เอดิน พวกเขาคือ: a = 0x01234567, b = 0x89abcdef, c = 0xfedcba98, d = 0x76543210
ค. การประมวลผลข้อมูลที่จัดกลุ่ม
d. เอาท์พุท: เอาต์พุตเป็นน้ำตกของ A, B, C และ D
3. SIGNATURE SHA1 เป็นอัลกอริธึมลายเซ็นดิจิตอลที่ไม่สามารถย้อนกลับได้ (โปรดดูที่ Baidu: http://baike.baidu.com/view/1228622.htm) SHA1 จะสร้างการย่อยข้อความ 160 บิต
. เติม: ก่อนอื่นต้องกรอกข้อมูลเพื่อให้ผลลัพธ์ของยอดคงเหลือที่เหลืออยู่ของความยาวบิตคู่ 512 เท่ากับ 448;
ข. ความยาวส่วนประกอบ: ความยาวส่วนประกอบที่เรียกว่าจะเติมความยาวของข้อมูลต้นฉบับที่อยู่เบื้องหลังข้อความว่าการดำเนินการเติมได้ดำเนินการแล้ว
ค. ค่าคงที่ที่ใช้
d. ฟังก์ชั่นที่ใช้: ใน sha1 เราต้องการชุดของฟังก์ชั่น แต่ละฟังก์ชั่น ft (0 <= t <= 79) ทำงานคำ 32 บิต b, c, d และสร้างคำ 32 บิตเป็นเอาต์พุต
ก. คำนวณสรุปข้อความ: สรุปข้อความจะต้องคำนวณโดยใช้ข้อความหลังจากการเติมและการเปลี่ยนความยาว
โมดูลควบคุมเข้าสู่ระบบ:
โมดูลบริการ:
var encryption = angular.module ('encryption', []); encryption.service ('md5', ฟังก์ชั่น () {var hexcase = 0; /* รูปแบบเอาต์พุต hex 0 - ตัวพิมพ์เล็ก 1 - uppercase* /var b64pad = "; /* - ascii; 16 - Unicode*// *** วิธีการสำหรับการโทรภายนอก*/this.hex_md5 = ฟังก์ชั่น (s) {return binl2hex (core_md5 (str2binl (s), s.length*chrsz); */x [len >> 5] | = 0x80 << ((len) % 32); x [(((len + 64) >>> 9) << 4) + 14] = len; var a = 1732584193; var b = -271733879; x.length; i+ = 16) {var eld = a; var oldb = b; var oldc = c; var oldd = d; a = md5_ff (a, b, c, d, x [i+ 0], 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, c, d, x 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); 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, c, x [i+13], 12, -40341101); -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); -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); -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); -660478335); b = md5_gg (b, c, d, a, x [i+4], 20, -405537848); a = md5_gg (a, b, c, d, x [i+9], 5, 56846438); -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); -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 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] 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 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] 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); 6], 23, 76029189); a = md5_hh (a, 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); a = md5_hh (a, b, c, d, x [i+ 9], 4, -64036487); -421815835); c = md5_hh (c, d, a, b, x [i+ 15], 16, 530742520); b = md5_hh (b, c, d, a, x [i+ 2], 23, -99538651); -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); -57434055); a = md5_ii (a, b, c, d, x [i+12], 6, 1700485571); d = md5_ii (d, a, b, c, x [i+3], 10, -189498606); -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); 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 718787259); b = md5_ii (b, c, d, a, x [i+ 9], 21, -343485551); a = safe_add (a, olda); b = safe_add (b, oldb); d);}}). บริการ ('base64', ฟังก์ชัน () {_ keystr = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+/=" // chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = _utf8_encode (อินพุต); ในขณะที่ (i <input.length) {chr1 = input.charcodeat (i ++); chr2 = input.charcodeat (i ++); chr3 = อินพุต (chr2 >> 4); enc3 = (chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; ถ้า (isnan (chr2)) {enc3 = enc4 = 64;} อื่น +_keystr.charat (enc3) +_keystr.charat (enc4);} return output;} // วิธีการส่วนตัวสำหรับ UTF-8 encoding_utf8_encode = ฟังก์ชั่น (สตริง) {string = string.replace (// r/n/g, "/n"); var utftext = "" " string.charcodeat (n); ถ้า (c <128) {utftext += string.fromCharcode (c);} อื่นถ้า ((c> 127) && (c <2048)) {utftext += string.fromCharcode ((c >> 6) | 192); String.FromCharcode ((C >> 12) | 224); utftext += string.fromCharcode ((c >> 6) & 63) | 128); ตัวพิมพ์เล็ก; binb2hex (core_sha1 (str2binb (s), s.length * chrsz));}/ * * คำนวณ sha-1 ของอาเรย์ของคำใหญ่-เอดินและความยาวเล็กน้อย */ฟังก์ชั่น core_sha1 (x, len) {/ * >> 9) << 4) + 15] = len; var w = อาร์เรย์ (80); var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; var e = -1009589776; a; var oldb = b; var oldc = c; var oldd = d; var old = e; สำหรับ (var j = 0; j <80; j ++) {ถ้า (j <16) w [j] = x [i+j]; 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; a = t; safe_add (d, เก่า); e = safe_add (e, เก่า);} return array (a, b, c, d, e);}})โครงสร้างไฟล์:
ข้างต้นคือลายเซ็นการใช้งานและการเข้ารหัสของบริการที่กำหนดเอง AngularJS แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!