Hasil enkripsi dari beberapa ASP SHA1 (ditulis oleh VBS) yang saya temukan di Baidu berbeda dari enkripsi SHA1 ASP.NET. Setelah enkripsi ASP.NET SHA1 adalah 40 bit, enkripsi ASP SHA1 yang ditemukan di internet adalah 64 bit. Saya berpikir bahwa ASP.NET telah dicegat (misalnya, jumlah rahasia MD5 ASP di Internet berbeda dari ASP.NET, yang merupakan masalah pencegatan), tetapi hasil enkripsi 64-bit ASP tidak mengandung hasil 40-bit dari ASP.NET. Tampaknya versi yang ditemukan berbeda dari algoritma enkripsi ASP.NET.
Akhirnya, saya menggunakan Google untuk mencari dinding dan menemukan versi JS dari kode enkripsi SHA1 dan dikombinasikan dengan ASP untuk menggunakan hasilnya persis sama dengan enkripsi SHA1 dari ASP.NET. . Tampaknya teks teknis masih belum bagus di Google. . Persetan dengan firewall di Cina. . Google juga memblokirnya.
Kode sumber enkripsi ASP SHA1 adalah sebagai berikut, yang konsisten dengan hasil enkripsi SHA1 dari ASP.NET:
Salinan kode adalah sebagai berikut:
<bahasa skrip = "javascript" type = "text/javascript" runat = "server">
/*
* Implementasi JavaScript dari algoritma hash aman, SHA-1, sebagaimana didefinisikan
* di fips pub 180-1
* Versi 2.1A Hak Cipta Paul Johnston 2000 - 2002.
* Kontributor lain: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Didistribusikan di bawah lisensi BSD
* Lihat http://pajhome.org.uk/crypt/md5 untuk detailnya.
*/
/*
* Variabel yang dapat dikonfigurasi. Anda mungkin perlu mengubah ini agar kompatibel
* Sisi server, tetapi default bekerja dalam banyak kasus.
*/
var hexcase = 0; /* format output hex. 0 - huruf kecil; 1 - huruf besar */
var b64pad = "="; /* BASE-64 PAD karakter. "=" untuk kepatuhan RFC yang ketat */
var chrsz = 8; /* bit per karakter input. 8 - ASCII; 16 - Unicode */
/*
* Ini adalah fungsi yang biasanya ingin Anda hubungi
* Mereka mengambil argumen string dan mengembalikan hex atau base-64 string yang dikodekan
*/
fungsi hex_sha1 (s) {return binb2hex (core_sha1 (str2binb (s), s.length * chrsz));}
fungsi b64_sha1 (s) {return binb2b64 (core_sha1 (str2binb (s), s.length * chrsz));}
fungsi str_sha1 (s) {return binb2str (core_sha1 (str2binb (s), s.length * chrsz));}
Fungsi hex_hmac_sha1 (key, data) {return binb2hex (core_hmac_sha1 (key, data));}
fungsi b64_hmac_sha1 (tombol, data) {return binb2b64 (core_hmac_sha1 (key, data));}
fungsi str_hmac_sha1 (key, data) {return binb2str (core_hmac_sha1 (key, data));}
/*
* Lakukan uji diri yang sederhana untuk melihat apakah VM berfungsi
*/
fungsi sha1_vm_test ()
{
return hex_sha1 ("ABC") == "A9993E364706816ABA3E25717850C26C9CD0D89D";
}
/*
* Hitung SHA-1 dari serangkaian kata-kata besar-endian, dan sedikit panjang
*/
fungsi core_sha1 (x, len)
{
/ * Tambahkan padding */
x [len >> 5] | = 0x80 << (24 - len % 32);
x [((len + 64 >> 9) << 4) + 15] = len;
var w = array (80);