-6

私はaes暗号化プログラムからcでAESアルゴリズムを実装 していますが、JavaでAESプログラムを書いていますが、暗号化されたデータの生成で問題が発生します。入力テキスト: 358960040119672 キー: mlabs

出力: 1. by java(android):"vcpBspcYHtjlMgbQJI3aWg==" 2. by c:"`Äç © õ#«0Z"÷›ý"

なぜこの特別な文字。c に示されています。これに対処する方法??

4

2 に答える 2

1

Java 出力は、暗号化後に Base64 アルゴリズムでエンコードされていますが、C はエンコードされていません。

于 2012-07-04T07:17:15.450 に答える
0

問題はおそらくパディングと変換です。128 ビット暗号化の結果は任意の値の 18 オクテット (印刷できない ASCII 文字であっても) であるため、データをバイト (たとえば 16 進数) に変換します。両面が同じパディングを使用していることを確認してください。

AES 128 ビットは、CHIPERTEXT[16 オクテット] = AES(KEY[16 オクテット], PLAIN[16 オクテット])) として定義されており、文字列を使用する規則はありません。

于 2012-07-04T07:13:20.483 に答える