Écrit avant:
AngularJS est un cadre JavaScript. Il peut être ajouté aux pages HTML via la balise <cript>.
AngularJS étend le HTML via des directives et lie les données au HTML à travers des expressions.
AngularJS est un excellent cadre de développement JS promu par Google ...
Affichage de la page:
Le cryptage est courant dans les applications. Je recommande personnellement la mise en œuvre de signatures de chiffrement à l'avant (le cryptage frontal est nécessaire de Zhihu: http://www.zhihu.com/question/25539382)
Une brève explication des algorithmes de chiffrement de Base64, MD5 et SHA1:
1. Base64 est un algorithme de chiffrement réversible et symétrique; Base64 a un jeu de caractères de base composé de 64 caractères de base.
Principe de cryptage de base64:
un. Base64 est un groupe de 3 octets, et un octet occupe 8 bits (bit)
né Divisez 24 bits en quatre groupes, chacun avec 6 bits.
c. Puis ajoutez 00 dans chaque groupe de deux chiffres élevés, augmentez à 32 bits, formant quatre octets
2. La signature MD5 est un algorithme de digest de message irréversible; Autrement dit, il ne peut pas être déchiffré (de CipherText à PlainText) (veuillez vous référer à Baidu: http://baike.baidu.com/view/7636.htm) MD5 générera un message de message 128 bits
un. Remplir: Premièrement, les informations doivent être remplies de sorte que le résultat du solde restant de sa paire de longueurs de bits 512 soit égal à 448;
né Variable d'initialisation: la valeur initiale 128 bits est la variable initiale de liaison d'essai. Ces paramètres sont utilisés dans le premier cycle d'opérations et sont exprimés dans l'endienne endian-enddian. Ce sont: a = 0x01234567, b = 0x89abcdef, c = 0xfedcba98, d = 0x76543210
c. Traitement des données groupées
d. Sortie: La sortie est une cascade de A, B, C et D
3. SHA1 Signature est un algorithme de signature numérique irréversible (veuillez vous référer à Baidu: http://baike.baidu.com/view/1228622.htm) Sha1 générera un digest de message 160 bits.
un. Remplir: Premièrement, les informations doivent être remplies de sorte que le résultat du solde restant de sa paire de longueurs de bits 512 soit égal à 448;
né Longueur du complément: la longueur dite du complément est de remplir la longueur des données d'origine derrière le message que l'opération de remplissage a été effectuée.
c. Constantes utilisées
d. Fonctions utilisées: Dans SHA1, nous avons besoin d'une série de fonctions. Chaque fonction ft (0 <= t <= 79) fonctionne
e. Calculer le résumé des messages: le résumé des messages doit être calculé à l'aide des messages après le remplaçant et le remplacement de la longueur.
Module de commande de connexion:
Module de service:
Var Encryption = Angular.Module ('Encryption', []); Encryption.Service ('MD5', fonction () {var hexcase = 0; / * Hex Format. ASCII; 16 - Unicode * // *** Méthodes pour les appels externes * / this.hex_md5 = fonction (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; var c = -1732584194; var d = 271733878; pour (Var i = 0; x.length; i + = 16) {var old = a; var oldb = b; var oldc = c; var oldd = d; a = md5_ff (a, b, c, d, x [i + 0], 7, -680876936); d = md5_ff (d, a, b, c, x [i + 1], 12, -389564586); 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 [i + 4], 7, -176418897); d = rd5_f 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); a = md5_ff (a, b, c, d, x [i + i + 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); b = md5_ff (b, c, d, a, a, x [i + 11], 22, 22, -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); c = md5_ff (c, d, a, b, x [i + 14], 17, -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); d = md5_gg (d, a, b, c, x [i + 6], n 9, -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, a, b, x [i + 15], 14, 14 -660478335); b = md5_gg (b, c, d, a, x [i + 4], 20, -405537848); a = md5_gg (a, b, c, d, x [i + 9], 5, 568446438); d = md5_gg (d, a, b, c, x [i + 14], 9, 9, -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, d, d, x [i + 13], 5, 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); b = md5_gg (b, c, d, a, a, x [i + 12], 20, md5_gg (b, c, d, a, a, x [i + 12], 20, 20, gard -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, -37858); 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], 11, -2022574463); 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, d, x [i + 1], 4, -1530992060); 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], 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, -722521979); b = md5_h (b, c, c, a, x [i + b = md5_h (b, c, d, a, x [i + b = md5_h (b, c, d, a, x [i + b = md5_h (b, c, d, a, x [i + b = md5_h (b, c, d, a, x [i + b = md5_h (b, c, c, a, x 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); a = md5_hh (a, b, c, d, x [i + 0], 11, -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); a = md5_hh (a, b, c, d, x [i +, 23, 23, 76029189); a = md5_hh (a, b, c, d, x [i + 6], 23, 76029189); a = md5_hh (a, b, c, d, x [i + 9], 4, -640364487); d = md5_hh (d, a, b, c, x [i + 12], 11, 11, 11, -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); a = md5_ii (a, b, c, d, x [i + 0], 6, 6, -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, c, d, a, x [i + 5], 21, md5_ii (b, c, c, d, a, x [i + 5], 21, md5_ii (b, c, c, d, a, x [i + 5], 21, md5_ii (b, c, c, d, a, x [i + 5], 21, md5_ii (b, c, c, d, a, X [i + 5], 21, -57434055); a = md5_ii (a, b, c, d, x [i + 12], 6, 1700485571); d = md5_ii (d, a, b, c, x [i + 3], 10, -1894986606); c = md5_ii (c, d, a, b, x [i + 10], 15, 15, 15 -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); a = md5_ii (a, b, c, d, x [i + 8], 6, 6, 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, d, a, x [i + 13], 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, 15, 718787259); b = md5_ii (b, c, d, a, x [i + 9], 21, -343485551); a = safe_add (a, olda); b = safe_add (b, oldb); c = safe_add (c, oldc); d = safe_add (d, oldd);} D);}}). Service ('Base64', fonction () {_ keySTR = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 + / ="; // Méthode publique pour chir2, CharboDe = fonction (entrée) {VaRputput = " Chr3, enc1, enc2, enc3, enc4; var i = 0; input = _utf8_encode (input); while (i <input.length) {ch1 = input.charcodeat (i ++); chr2 = input.Charcodeat (i ++); ch3 = input.CharCodeat (i ++); Enc1 = ch1 >> 2; >> 4); ENC3 = ((chr2 et 15) << 2) | (Chr3 >> 6); ENC4 = Chr3 & 63; if (isnan (chr2)) {enc3 = Enc4 = 64;} else if (isnan (ch3)) {enc4 = 64;} output. + _KeyStr.Charat (ENC3) + _KeyStr.Charat (ENC4);} Return Sortie;} // Méthode privée pour UTF-8 Encoding_Utf8_Encode = fonction (String) {String = String.replace (// r / n / g, "/ n"); var utftext = "; pour (var n = 0; n <String. String.Charcodeat (n); if (c <128) {utftex String.fromCharcode ((c >> 12) | 224); utftext + = string.fromCharcode ((c >> 6) & 63) | 128); utftex MONDIONNEMENTS; binb2hex (core_sha1 (str2binb (s), s.length * chrsz));} / * * calculer le sha-1 d'un tableau de mots big-endiens, et une longueur de bit * / function core_sha1 (x, len) {/ * apprend padding * / x [len >> 5] | = 0x80 << (24 - Len% 32); >> 9) << 4) + 15] = len; var w = tableau (80); var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; var e = -100958976; pour (var i = 0; a; var 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); 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 = sayaDd (c, b = safe_add (b, oldb); c = sayaDd (c, b = safe_add (b, oldb); c = safac safe_add (d, old); e = safe_add (e, old);} return array (a, b, c, d, e);}})Structure de fichiers:
Ce qui précède est la signature d'implémentation et le cryptage du service personnalisé AngularJS qui vous est présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!