Os resultados da criptografia de vários ASP SHA1 (escritos por VBS) que encontrei no Baidu são diferentes dos da criptografia SHA1 da ASP.NET. Após a criptografia do ASP.NET SHA1 ser de 40 bits, a criptografia do ASP SHA1 encontrada na Internet é de 64 bits. Eu pensei que o ASP.NET interceptou (por exemplo, o número de segredos MD5 de ASP na Internet é diferente do ASP.NET, que é um problema de interceptação), mas os resultados de criptografia de 64 bits do ASP não contêm os resultados de 40 bits do ASP.NET. Parece que a versão encontrada é diferente do algoritmo de criptografia do ASP.NET.
Por fim, usei o Google para pesquisar na parede e encontrei uma versão JS do código de criptografia SHA1 e combinado com asp para usar o resultado é exatamente o mesmo que a criptografia sha1 do ASP.NET. . Parece que o texto técnico ainda não é bom no Google. . Apenas foda -se o firewall na China. . O Google também o bloqueou.
O código -fonte da criptografia ASP SHA1 é o seguinte, o que é consistente com o resultado da criptografia sha1 do ASP.NET:
A cópia do código é a seguinte:
<script linguage = "javascript" type = "text/javascript" runat = "server">>
/*
* Uma implementação JavaScript do algoritmo de hash seguro, SHA-1, conforme definido
* no pub FIPS 180-1
* Versão 2.1a Copyright Paul Johnston 2000 - 2002.
* Outros colaboradores: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distribuído sob a licença BSD
* Consulte http://pajhome.org.uk/crypt/md5 para obter detalhes.
*/
/*
* Variáveis configuráveis. Pode ser necessário ajustá -los para serem compatíveis com
* O lado do servidor, mas os padrões funcionam na maioria dos casos.
*/
var hexcase = 0; /* Formato de saída hexadecimal. 0 - minúscula; 1 - maiúsculas */
var b64pad = "="; /* Caractere de Base-64 PAD. "=" Para conformidade estrita de RFC */
var Chrsz = 8; /* bits por caractere de entrada. 8 - ASCII; 16 - Unicode */
/*
* Essas são as funções que você normalmente deseja ligar
* Eles recebem argumentos de string e retornam strings hexadecimais ou de 64 da base-64
*/
função hex_sha1 (s) {return binb2hex (core_sha1 (str2binb (s), s.length * chrsz));}
função b64_sha1 (s) {return binb2b64 (core_sha1 (str2binb (s), s.length * chrsz));}
função str_sha1 (s) {return binb2str (core_sha1 (str2binb (s), s.length * chrsz));}
função hex_hmac_sha1 (chave, dados) {return binb2hex (core_hmac_sha1 (chave, dados));}
Função B64_HMAC_SHA1 (chave, dados) {return binb2b64 (core_hmac_sha1 (chave, dados));}
função str_hmac_sha1 (chave, dados) {return binb2str (core_hmac_sha1 (chave, dados));}
/*
* Realize um autoteste simples para ver se a VM está funcionando
*/
função sha1_vm_test ()
{
return hex_sha1 ("abc") == "A9993E364706816ABA3E25717850C26C9CD0D89D";
}
/*
* Calcule o sha-1 de uma variedade de palavras grandes e extremas e um pouco de comprimento
*/
função core_sha1 (x, len)
{
/ * Anexar preenchimento */
x [len >> 5] | = 0x80 << (24 - Len % 32);
x [((len + 64 >> 9) << 4) + 15] = len;
var w = matriz (80);