Vorher geschrieben:
AngularJS ist ein JavaScript -Framework. Es kann über das <Script> -Tag zu HTML -Seiten hinzugefügt werden.
AngularJs erweitert HTML durch Anweisungen und bindet Daten durch Ausdrücke an HTML.
AngularJS ist ein ausgezeichnetes JS -Entwicklungsrahmen, das von Google gefördert wird ...
Seitenanzeige:
Die Verschlüsselung ist in Anwendungen üblich. Ich persönlich empfehle die Implementierung von Verschlüsselungssignaturen am vorderen Ende (unabhängig davon, ob die Frontendverschlüsselung von Zhihu erforderlich ist: http://www.zhihu.com/question/25539382)
Eine kurze Erklärung der Verschlüsselungsalgorithmen von Base64, MD5 und SHA1:
1. Base64 ist ein reversibler und symmetrischer Verschlüsselungsalgorithmus; Base64 verfügt über einen grundlegenden Zeichensatz, der aus 64 Grundzeichen besteht.
Base64 Verschlüsselungsprinzip:
A. Base64 ist eine Gruppe von 3 Bytes, und ein Byte belegt 8 Bit (Bit)
B. Teilen Sie 24 Bit in vier Gruppen mit jeweils 6 Bit.
C. Fügen Sie dann 00 in jeder Gruppe von zwei Ziffern hinzu, erweitern Sie sich auf 32 Bit und bilden vier Bytes
2. MD5 Signature ist ein irreversibler Meldungs -Digest -Algorithmus; Das heißt, es kann nicht entschlüsselt werden (von Ciphertext bis Plaintext) (siehe Baidu: http://baike.baidu.com/view/7636.htm) MD5 generiert eine 128-Bit-Nachrichten-Digest
A. FILL: Zunächst müssen die Informationen gefüllt werden, damit das Ergebnis des verbleibenden Gleichgewichts seines Bitlängenpaares 512 448 entspricht.
B. Initialisierungsvariable: Der anfängliche 128-Bit-Wert ist die anfängliche Versuchsverbindungsvariable. Diese Parameter werden in der ersten Operationsrunde verwendet und in Big-Endian Endian Endianess ausgedrückt. Sie sind: a = 0x01234567, b = 0x89abcdef, c = 0xfedcba98, d = 0x76543210
C. Verarbeitung gruppierter Daten
D. Ausgang: Die Ausgabe ist eine Kaskade von A, B, C und D.
3. SHA1 Signature ist ein irreversibler digitaler Signaturalgorithmus (siehe Baidu: http://baike.baidu.com/view/1228622.htm) SHA1 generiert eine 160-Bit-Nachrichten-Digest.
A. FILL: Zunächst müssen die Informationen gefüllt werden, damit das Ergebnis des verbleibenden Gleichgewichts seines Bitlängenpaares 512 448 entspricht.
B. Komplementlänge: Die sogenannte Komplementlänge besteht darin, die Länge der ursprünglichen Daten hinter der Meldung zu füllen, dass die Füllvorgänge durchgeführt wurden.
C. Konstanten verwendet
D. Verwendete Funktionen: In SHA1 brauchen wir eine Reihe von Funktionen. Jede Funktion ft (0 <= t <= 79) betreibt 32-Bit-Wörter B, C, D und erzeugt 32-Bit-Wörter als Ausgabe
e. Berechnen Sie die Nachrichtenübersicht: Die Meldungsübersicht muss nach dem Ausfüllen und Längenersatz berechnet werden.
Login -Steuermodul:
Servicemodul:
var cadryption = angular.module ('Verschlüsselung', []); Verschlüsselung.Service ('Md5', Funktion () {var hexcase = 0; /* hex Ausgangsformat. 0 - Kleinbuchstaben; 1 - Großbuchstaben* /var b64pad = ""; /* Base -64 -Pad -Charakter. " ASCII; */x [len >> 5] | = 0x80 << ((len) % 32); x [((len + 64) >>> 9) << 4) + 14] = len; var a = 1732584193; var b = -27173879; var c = -1732; X.Length; md5_ff (c, d, a, b, x [i+ 2], 17, 606105819); B = Md5_ff (B, C, D, A, X [I+ 3], 22, -1044525330); B, C, X [i+ 5], 12, 1200080426); 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); -1502002290); B = Md5_ff (b, c, d, a, x [i+ 15], 22, 1236535329); -1069501632); -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); -1019803690); -1444681467); d = Md5_gg (d, a, b, c, x [i+ 2], 9, -51403784); -1926607734); a = Md5_hh (a, b, c, d, x [i+ 5], 4, -378558); md5_gg (b, c, d, a, x [i+ 12], 20, -1926607734); a = md5_hh (a, b, c, d, x [i+ 5], 4, -378558); 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); x [i+ 13], 4, 681279174); D = Md5_HH (d, a, b, c, x [i+ 0], 11, -358537222; 6], 23, 76029189); a = Md5_hh (a, b, c, d, x [i+ 6], 23, 76029189); -358537222); 76029189); a = Md5_hh (a, b, c, d, x [i+ 6], 23, 76029189); -421815835); -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); -1051523); B = Md5_ii (b, c, d, a, x [i+ 1], 21, -2054922799); 1873313359); d = Md5_ii (d, a, b, c, x [i+15], 10, -30611744); 1309151649); 718787259); B = Md5_ii (b, c, d, a, x [i+ 9], 21, -343485551); d);}}). service ('base64', function () {_ keyStr = "abcdefghijklMnopqrstuvwxyzabcdefGhijklMnopqrstuvwxyz0123456789+/="; CHR2, CHR3, ENC1, ENC2, ENC3, ENC4; var i = 0; input = _utf8_encode (Eingabe); while (i <input.length) {chr1 = input.charCodeat (i ++); chr2 = input.charCodeat (i ++); chr3 = input.charcodes (i ++); Enc1 = chr1 >> 2; (CHR2 >> 4); Enc3 = (CHR2 & 15) << 2) | +_keystr.charat (Enc3) +_keystr.charat (Enc4);} Rückgabeausgabe;} // private Methode für UTF-8 codieren_utf8_encode = function (string) {string = string.replace (// r/n/g, "/n"); var utftext = ";"; string.charCodeat (n); if (c <128) {utfText += string.fromChode (c);} else if ((c> 127) && (c <2048)) {utftext += string.fromCharCode ((c >> 6) | 192); utfText += String.FromChode ((C >> 6) | 192); += String.fromCharCode ((c >> 12) | 224); utftext += string.fromCharCode ((c >> 6) & 63) | Format. Binb2hex (core_sha1 (str2binb (s), s.Length * chrsz));}/ * * Berechnen Sie die SHA-1 eines Arrays von Big-Endian-Wörtern */Funktion core_sha1 (x, len) {/ * Append Padding */x [len >> | 9) << 4) + 15] = len; var w = Array (80); var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; var e = -100958766; oldb = b;var oldc = c;var oldd = d;var old = e;for (var j = 0; j < 80; j++) {if (j < 16) w[j] = x[i + j];else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);var t = safe_add(safe_add(rol(a, 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;}a = safe_add(a, olda);b = safe_add(b, oldb);c = safe_add(c, oldc);d = safe_add (d, alt); e = safe_add (e, alt);} return array (a, b, c, d, e);}})Dateistruktur:
Das obige ist die Implementierungssignatur und die Verschlüsselung des benutzerdefinierten AngularJS -benutzerdefinierten Dienstes, der Ihnen vom Editor vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!