Los resultados de cifrado de varios ASP SHA1 (escritos por VBS) que encontré en Baidu son diferentes de los del cifrado SHA1 de ASP.NET. Después del cifrado de ASP.NET SHA1 es de 40 bits, el cifrado de ASP SHA1 que se encuentra en Internet es de 64 bits. Pensé que ASP.NET ha interceptado (por ejemplo, el número de secretos MD5 de ASP en Internet es diferente de ASP.NET, que es un problema de interceptación), pero los resultados de cifrado de 64 bits de ASP no contienen los resultados de 40 bits de ASP.NET. Parece que la versión encontrada es diferente del algoritmo de cifrado de ASP.NET.
Finalmente, utilicé Google para buscar el muro y encontré una versión JS del código de cifrado SHA1 y combinado con ASP para usar el resultado es exactamente el mismo que el cifrado SHA1 de ASP.NET. . Parece que el texto técnico todavía no es bueno en Google. . Solo fóllate el firewall en China. . Google también lo bloqueó.
El código fuente del cifrado ASP SHA1 es el siguiente, que es consistente con el resultado de cifrado SHA1 de ASP.NET:
La copia del código es la siguiente:
<script language = "javascript" type = "text/javaScript" runat = "servidor">
/*
* Una implementación de JavaScript del algoritmo de hash seguro, SHA-1, como se define
* En FIPS PUB 180-1
* Versión 2.1A Copyright Paul Johnston 2000 - 2002.
* Otros contribuyentes: Greg Holt, Andrew Kepert, Ydnar, LostInet
* Distribuido bajo la licencia BSD
* Ver http://pajhome.org.uk/crypt/md5 para más detalles.
*/
/*
* Variables configurables. Es posible que deba ajustarlos para ser compatibles con
* El lado del servidor, pero los valores predeterminados funcionan en la mayoría de los casos.
*/
var hexcase = 0; /* Formato de salida hexadecimal. 0 - minúsculas; 1 - mayúscula */
var b64pad = "="; /* Base-64 almohadilla. "=" para el cumplimiento estricto de RFC */
var chrsz = 8; /* bits por carácter de entrada. 8 - ASCII; 16 - Unicode */
/*
* Estas son las funciones que generalmente querrá llamar
* Toman argumentos de cadena y devuelven hexcos o cuerdas codificadas en Hex o Base-64
*/
función hex_sha1 (s) {return binb2hex (core_sha1 (str2binb (s), s.length * chrsz));}
función B64_SHA1 (S) {return binb2b64 (core_sha1 (str2binb (s), s.length * chrsz));}
función str_sha1 (s) {return binb2str (core_sha1 (str2binb (s), s.length * chrsz));}
función hex_hmac_sha1 (clave, datos) {return binb2hex (core_hmac_sha1 (clave, datos));}
Función B64_HMAC_SHA1 (Key, Data) {return binb2b64 (core_hmac_sha1 (clave, datos));}
función str_hmac_sha1 (clave, datos) {return binb2str (core_hmac_sha1 (clave, datos));}
/*
* Realice una autoevaluación simple para ver si la VM está funcionando
*/
función sha1_vm_test ()
{
return hex_sha1 ("ABC") == "A9993E364706816ABA3E25717850C26C9CD0D89D";
}
/*
* Calcule el SHA-1 de una matriz de palabras grandes y finales, y un poco de longitud
*/
función Core_SHA1 (X, Len)
{
/ * Agregar acolchado */
x [len >> 5] | = 0x80 << (24 - len % 32);
x [((len + 64 >> 9) << 4) + 15] = len;
var w = matriz (80);