Les résultats du chiffrement de plusieurs ASP SHA1 (écrits par VBS) que j'ai trouvés sur Baidu sont différents de ceux du cryptage SHA1 d'ASP.NET. Après le chiffrement de ASP.NET SHA1 est de 40 bits, le chiffrement d'ASP Sha1 trouvé sur Internet est de 64 bits. J'ai pensé que ASP.NET avait intercepté (par exemple, le nombre de secrets MD5 d'ASP sur Internet est différent d'ASP.NET, qui est un problème d'interception), mais les résultats de cryptage 64 bits d'ASP ne contiennent pas les résultats 40 bits d'ASP.NET. Il semble que la version trouvée soit différente de l'algorithme de chiffrement d'ASP.NET.
Enfin, j'ai utilisé Google pour rechercher le mur et trouvé une version JS du code de cryptage SHA1 et combiné avec ASP pour utiliser le résultat est exactement le même que le cryptage SHA1 d'ASP.NET. . Il semble que le texte technique ne soit toujours pas bon dans Google. . Baise juste le pare-feu en Chine. . Google l'a également bloqué.
Le code source du cryptage ASP SHA1 est le suivant, ce qui est cohérent avec le résultat de cryptage SHA1 d'ASP.NET:
La copie de code est la suivante:
<script lingots = "javascript" type = "text / javascript" runat = "server">
/ *
* Une implémentation JavaScript de l'algorithme de hachage sécurisé, SHA-1, tel que défini
* Dans FIPS Pub 180-1
* Version 2.1a Copyright Paul Johnston 2000 - 2002.
* Autres contributeurs: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distribué sous la licence BSD
* Voir http://pajhome.org.uk/crypt/md5 pour plus de détails.
* /
/ *
* Variables configurables. Vous devrez peut-être les modifier pour être compatibles avec
* Le côté serveur, mais les valeurs par défaut fonctionnent dans la plupart des cas.
* /
var hexcase = 0; / * Format de sortie hexadécimal. 0 - minuscules; 1 - majuscules * /
var b64pad = "="; / * Caractère de pad de base-64. "=" pour une conformité RFC stricte * /
var chrsz = 8; / * bits par caractère d'entrée. 8 - ASCII; 16 - Unicode * /
/ *
* Ce sont les fonctions que vous voudrez généralement appeler
* Ils prennent des arguments de cordes et retournent des cordes codées Hex ou Base-64
* /
fonction hex_sha1 (s) {return binb2hex (core_sha1 (str2binb (s), s.length * chrsz));}
fonction b64_sha1 (s) {return binb2b64 (core_sha1 (str2binb (s), s.length * chrsz));}
fonction str_sha1 (s) {return binb2str (core_sha1 (str2binb (s), s.length * chrsz));}
fonction hex_hmac_sha1 (key, data) {return binb2hex (core_hmac_sha1 (key, data));}
fonction b64_hmac_sha1 (clé, données) {return binb2b64 (core_hmac_sha1 (key, data));}
fonction str_hmac_sha1 (key, data) {return binb2str (core_hmac_sha1 (key, data));}
/ *
* Effectuez un auto-test simple pour voir si la machine virtuelle fonctionne
* /
fonction sha1_vm_test ()
{
RETOUR HEX_SHA1 ("ABC") == "A9993E364706816ABA3E25717850C26C9CD0D89D";
}
/ *
* Calculez le SHA-1 d'un tableau de mots Big-Endan, et un peu longueur
* /
fonction core_sha1 (x, len)
{
/ * Ajouter le rembourrage * /
x [len >> 5] | = 0x80 << (24 - len% 32);
x [((len + 64 >> 9) << 4) + 15] = len;
var w = tableau (80);