Результаты шифрования нескольких ASP SHA1 (написанных VBS), которые я обнаружил на Baidu, отличаются от результатов шифрования SHA1 ASP.NET. После шифрования ASP.NET SHA1 составляет 40 бит, шифрование ASP SHA1, найденное в Интернете, составляет 64 бита. Я думал, что ASP.NET перехватил (например, количество секретов MD5 ASP в Интернете отличается от ASP.NET, что является проблемой перехвата), но 64-битные результаты шифрования ASP не содержат 40-битных результатов ASP.NET. Кажется, что найденная версия отличается от алгоритма шифрования ASP.NET.
Наконец, я использовал Google для поиска стены и нашел JS -версию кода шифрования шифрования SHA1 и в сочетании с ASP, чтобы использовать результат, точно такой же, как и шифрование SHA1 ASP.NET. Полем Кажется, что технический текст все еще не очень хорош в Google. Полем Просто трахни брандмауэр в Китае. Полем Google также заблокировал его.
Исходный код шифрования ASP SHA1 заключается в следующем, что согласуется с результатом шифрования SHA1 ASP.NET:
Кода -копия выглядит следующим образом:
<script language = "javascript" type = "text/javascript" runat = "server">
/*
* Реализация JavaScript Алгоритма безопасного хэша SHA-1, как определено
* В пабе FIPS 180-1
* Версия 2.1A Copyright Paul Johnston 2000 - 2002.
* Другие участники: Грег Холт, Эндрю Кеперт, Иднар, Lostinet
* Распределено по лицензии BSD
* См. Http://pajhome.org.uk/crypt/md5 для деталей.
*/
/*
* Настраиваемые переменные. Вам может потребоваться настроить их, чтобы быть совместимыми с
* Серверная сторона, но по умолчанию работают в большинстве случаев.
*/
var hexcase = 0; /* Выходной формат шестигранного. 0 - нижний регистр; 1 - верхний регистр */
var b64pad = "="; /* BASE-64 PAD. "=" Для строгого соответствия RFC *//
var chrsz = 8; /* Биты на входной символ. 8 - ASCII; 16 - Unicode */
/*
* Это те функции, которые вы обычно хотите позвонить
* Они принимают строковые аргументы и возвращают кодируемые строки HEX или Base-64
*/
Функция hex_sha1 (s) {return binb2Hex (core_sha1 (str2binb (s), s.length * chrsz));}
Функция B64_SHA1 (s) {return binb2b64 (core_sha1 (str2binb (s), s.length * chrsz));}
Функция str_sha1 (s) {return binb2str (core_sha1 (str2binb (s), s.length * chrsz));}
Функция hex_hmac_sha1 (key, data) {return binb2hex (core_hmac_sha1 (key, data));}
Функция b64_hmac_sha1 (key, data) {return binb2b64 (core_hmac_sha1 (key, data));}
Функция str_hmac_sha1 (key, data) {return binb2str (core_hmac_sha1 (key, data));}
/*
* Выполните простой самопроверка, чтобы увидеть, работает ли виртуальная машина
*/
function sha1_vm_test ()
{
вернуть hex_sha1 ("ABC") == "A9993E364706816ABA3E25717850C26C9CD0D89D";
}
/*
* Рассчитайте SHA-1 множества биг-эндэдийских слов и немного длины
*/
Функция core_sha1 (x, len)
{
/ * Добавить прокладку */
x [len >> 5] | = 0x80 << (24 - len % 32);
x [((Len + 64 >> 9) << 4) + 15] = len;
var W = массив (80);