3

8 バイト ブロックで DES 暗号化を実行するには、Crypto-JS が必要です (今のところ)。ただし、パディングなしで crypto-js でこれを達成するのに問題があります。

私が実行するとき:

var skl = CryptoJS.DES.encrypt ( CryptoJS.enc.Hex.parse ( "0000000000000000" ), CryptoJS.enc.Hex.parse ( "0000000000000000"), 
                                 { iv : CryptoJS.enc.Hex.parse ( "0000000000000000" ), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.NoPadding } );

出力がありません。CBC モードはパディングを必要としませんが、他のすべてのブロック モード (OFB / CFB など) を試しましたが、まだ出力がありません。Pkcs7 を使用すると、出力は提供されますが、入力ブロックがパディングされ、16 バイトの暗号メッセージが生成されます。パディングを指定すると、ブロックサイズに互換性がある場合でも常にパディングされると思いますか?

var skl = CryptoJS.DES.encrypt ( CryptoJS.enc.Hex.parse ( "0000000000000000" ), CryptoJS.enc.Hex.parse ( "0000000000000000"), 
                                 { iv : CryptoJS.enc.Hex.parse ( "0000000000000000" ), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 } );

入力データを正しい方法で (16 進解析を介して) 指定していますか? 固定サイズの raw バイトを暗号化することが重要です。この例はないようです。

パディングなしでデータを DES 暗号化する正しい方法は何ですか?

4

0 に答える 0