3DESの紹介:
3DES(またはトリプルDES)は、トリプルデータ暗号化アルゴリズムのブロックパスワードの一般的な用語です。各データブロックに3回、暗号化アルゴリズムを3回適用することと同等です。コンピューターのコンピューティング能力が強化されているため、元のDESパスワードのキー長は容易に膨らんでいます。 3DESは、新しいブロック暗号アルゴリズムを設計するのではなく、DESのキー長を増やすことで同様の攻撃を回避するために、比較的単純な方法を提供するように設計されています。
今日は、クライアント側にDESを実装する必要があります。 http://www.tero.co.uk/des/code.phpをすぐに見つけました
アプリケーションの例
var key = "これは24バイトキーです!!
もちろん、これは私たちが必要としていたものではないことがわかりました。私たちのサーバーはdes-edeを使用しています。
ここには、3DEをサポートする小さなピットがあります
//いくつの反復(1つは1、トリプルデスの場合は3)var iterations = key.length> 8? 3:1; // Paul 16/6/2007によって変更されて、9+バイトキーにトリプルDESを使用します
しかし、キーを使用することには小さなエラーがあります
64ビットの場合、それはDESの正の解決策ですが、3DESは128ビットまたは192ビットである可能性があります。
3DESのプロセスはen(k3、de(k2、en(k1、p)))です)
K1 = K3の場合、単純化された128ビットキーを使用できます。
key = "k1k1k1k1k2k2k2k2k2k2"実際、k1k1k1k1k2k2k2k2k2k1k1k1k1k1に相当する必要があります。著者はそれを実装しませんでした
もう1つはパディングモードです。要するに、ブロック暗号化の場合、スペースが不十分な場合はどのようにして埋める必要がありますか?以下はソースコードです
if(padding == 2)message += ""; //スペースセルスでメッセージをパッドするif(padding == 1){temp = 8-(len%8);メッセージ += String.FromCharcode(温度、温度、温度、温度、温度、温度、温度、温度); if(temp == 8)len += 8;} // pkcs7 paddingelse if(!padding)message += "/0/0/0/0/0/0/0/0/0/0/0"; // nullバイトでメッセージをパッドアウトしますこれで、PKCS5/7が一般的に使用されます
呼び出し時にこれら2つのポイントに注意してください。実際、des-Edeが実装されています。
例
var key = "b964b7c58e99b59" + "b964b7c5"; var message = "これはテストメッセージです"; var ciphertext = des(key、message、1、0,0,1); document.writeln( "<br /> des3テスト:" + stringtohex(ciphertext));
上記は、編集者が紹介したJavaScriptの3DESです。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!