私がBaiduで見つけたいくつかのASP SHA1(VBSによって書かれた)の暗号化結果は、ASP.NETのSHA1暗号化の結果とは異なります。 ASP.NET SHA1の暗号化が40ビットの後、インターネット上で見つかったASP SHA1の暗号化は64ビットです。 ASP.NETが傍受したと思いました(たとえば、インターネット上のASPのMD5秘密の数はASP.NETとは異なりますが、これは傍受の問題です)が、ASPの64ビット暗号化結果にはASP.NETの40ビット結果は含まれていません。見つかったバージョンは、ASP.NETの暗号化アルゴリズムとは異なるようです。
最後に、Googleを使用して壁を検索し、SHA1暗号化コードのJSバージョンを見つけ、ASPを使用して結果を使用してASP.NETのSHA1暗号化とまったく同じです。 。技術的なテキストはまだGoogleでは良くないようです。 。中国のファイアウォールをファックしてください。 。 Googleもそれをブロックしました。
ASP SHA1暗号化のソースコードは次のとおりです。これは、ASP.NETのSHA1暗号化の結果と一致しています。
コードコピーは次のとおりです。
<スクリプト言語= "javascript" type = "text/javascript" runat = "server">
/*
*定義されているように、安全なハッシュアルゴリズムSHA-1のJavaScriptの実装
* FIPS Pub 180-1
*バージョン2.1a Copyright Paul Johnston 2000-2002。
*その他の貢献者:グレッグ・ホルト、アンドリュー・ケパート、イドナール、ロストインネット
* BSDライセンスの下で配布されます
*詳細については、http://pajhome.org.uk/crypt/md5を参照してください。
*/
/*
*構成可能な変数。あなたはこれらを調整する必要があるかもしれません
*サーバー側ですが、デフォルトはほとんどの場合動作します。
*/
var hexcase = 0; /* hex出力形式。 0-小文字; 1-大文字 */
var b64pad = "="; /*ベース64パッド文字。 "="厳密なRFCコンプライアンスの場合 */
var chrsz = 8; /*入力文字ごとにビット。 8 -ASCII; 16 -Unicode */
/*
*これらはあなたが通常呼びたい関数です
*彼らは文字列の引数を取り、160個またはベース64エンコードされた文字列のいずれかを返します
*/
関数hex_sha1(s){return binb2hex(core_sha1(str2binb(s)、s.length * chrsz);}
function b64_sha1(s){return binb2b64(core_sha1(str2binb(s)、s.length * chrsz);}
function 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));}
function str_hmac_sha1(key、data){return binb2str(core_hmac_sha1(key、data));}
/*
*簡単なセルフテストを実行して、VMが機能しているかどうかを確認します
*/
関数sha1_vm_test()
{
return 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 = array(80);