Die Verschlüsselungsergebnisse mehrerer ASP SHA1 (geschrieben von VBS), die ich auf Baidu gefunden habe, unterscheiden sich von denen der SHA1 -Verschlüsselung von ASP.NET. Nach der Verschlüsselung von ASP.NET SHA1 beträgt die Verschlüsselung von ASP SHA1 im Internet 64 Bit. Ich dachte, dass ASP.NET abgefangen hat (z. B. die Anzahl der MD5-Geheimnisse von ASP im Internet unterscheidet sich von ASP.NET, was ein Problem der Abnehmung ist), aber die 64-Bit-Verschlüsselungsergebnisse von ASP enthält nicht die 40-Bit-Ergebnisse von ASP.NET. Es scheint, dass sich die gefundene Version vom Verschlüsselungsalgorithmus von ASP.NET unterscheidet.
Schließlich habe ich Google verwendet, um die Wand zu durchsuchen und eine JS -Version des SHA1 -Verschlüsselungscodes zu finden und mit ASP zu kombinieren, um das Ergebnis zu verwenden, ist genau das gleiche wie die SHA1 -Verschlüsselung von ASP.NET. . Es scheint, dass der technische Text in Google immer noch nicht gut ist. . Fick einfach die Firewall in China. . Google blockierte es auch.
Der Quellcode der ASP SHA1 -Verschlüsselung ist wie folgt, was mit dem SHA1 -Verschlüsselungsergebnis von ASP.NET übereinstimmt:
Die Codekopie lautet wie folgt:
<script Language = "javaScript" type = "text/javascript" runat = "server">
/*
* Eine JavaScript-Implementierung des sicheren Hash-Algorithmus SHA-1 wie definiert
* In Fips Pub 180-1
* Version 2.1a Copyright Paul Johnston 2000 - 2002.
* Andere Mitwirkende: Greg Holt, Andrew Kepert, Ydnar, LostInet
* Unter der BSD -Lizenz verteilt
* Weitere Informationen finden Sie unter http://pajhome.org.uk/crypt/md5.
*/
/*
* Konfigurierbare Variablen. Möglicherweise müssen Sie diese so optimieren, dass sie kompatibel sind
* Die serverseitige, aber die Standardeinstellungen funktionieren in den meisten Fällen.
*/
var hexcase = 0; /* Hex -Ausgangsformat. 0 - Kleinbuchstaben; 1 - Großbuchstaben */
var b64pad = "="; /* Basis-64-Pad-Zeichen. "=" für strenge RFC -Konformität *//
var chrsz = 8; /* Bits pro Eingangszeichen. 8 - ASCII; 16 - Unicode */
/*
* Dies sind die Funktionen, die Sie normalerweise anrufen möchten
* Sie nehmen String-Argumente und geben entweder Hex- oder Base-64-codierte Zeichenfolgen zurück
*/
Funktion hex_sha1 (s) {return Binb2hex (core_sha1 (str2binb (s), s.Length * chrsz));};
Funktion B64_SHA1 (s) {return binb2b64 (core_sha1 (str2binb (s), s.Length * chrsz));};
Funktion str_sha1 (s) {return binb2str (core_sha1 (str2binb (s), s.Length * chrsz));};
Funktion HEX_HMAC_SHA1 (Schlüssel, Daten) {return Binb2hex (core_hmac_sha1 (Schlüssel, Daten));}
Funktion B64_HMAC_SHA1 (Schlüssel, Daten) {return binb2b64 (core_hmac_sha1 (Schlüssel, Daten));}
Funktion str_hmac_sha1 (Schlüssel, Daten) {return binb2str (core_hmac_sha1 (Schlüssel, Daten));}
/*
* Führen Sie einen einfachen Selbsttest durch, um festzustellen, ob die VM funktioniert
*/
Funktion SHA1_VM_test ()
{
return hex_sha1 ("ABC") == "A9993E364706816ABA3E25717850C26C9CD0D89D";
}
/*
* Berechnen Sie die SHA-1 einer Reihe von Wörtern von Big-Endian und ein bisschen Länge
*/
Funktion core_sha1 (x, len)
{
/ * Padding anhängen */
x [len >> 5] | = 0x80 << (24 - Len % 32);
x [((len + 64 >> 9) << 4) + 15] = len;
var w = Array (80);