1

iPhone アプリで 3DES 暗号化を使用すると問題が発生します。暗号化する 9 バイトのメッセージがあります。を使用するkCCOptionECBModeと、最初の 8 バイト ブロックが正しく暗号化されます (サーバーによってサンプルの結果が生成されます)。最後のバイトを暗号化するにはどうすればよいですか? kCCOptionPKCS7Paddingorを使用するkCCOptionECBMode| kCCOptionPKCS7Paddingと、 status で間違った結果が返されますkCCBufferTooSmall。SO での 3DES 暗号化に関連するいくつかの記事を読みましたが、役に立ちませんでした。

 ccStatus = CCCrypt(kCCEncrypt,
                       kCCAlgorithm3DES,
                       kCCOptionECBMode,
                       vkey, 
                       kCCKeySize3DES,
                       vinitVec,
                       vplainText,
                       plainTextBufferSize,
                       (void *)bufferPtr,
                       [data length],
                       &movedBytes);
4

1 に答える 1

0

問題はデータ長パラメーターにありました。パディング後のデータ長を計算して関数に渡す必要があります。

于 2013-08-07T04:13:36.637 に答える