私はaes暗号化プログラムからcでAESアルゴリズムを実装 していますが、JavaでAESプログラムを書いていますが、暗号化されたデータの生成で問題が発生します。入力テキスト: 358960040119672 キー: mlabs
出力: 1. by java(android):"vcpBspcYHtjlMgbQJI3aWg==" 2. by c:"`Äç © õ#«0Z"÷›ý"
なぜこの特別な文字。c に示されています。これに対処する方法??
私はaes暗号化プログラムからcでAESアルゴリズムを実装 していますが、JavaでAESプログラムを書いていますが、暗号化されたデータの生成で問題が発生します。入力テキスト: 358960040119672 キー: mlabs
出力: 1. by java(android):"vcpBspcYHtjlMgbQJI3aWg==" 2. by c:"`Äç © õ#«0Z"÷›ý"
なぜこの特別な文字。c に示されています。これに対処する方法??
Java 出力は、暗号化後に Base64 アルゴリズムでエンコードされていますが、C はエンコードされていません。
問題はおそらくパディングと変換です。128 ビット暗号化の結果は任意の値の 18 オクテット (印刷できない ASCII 文字であっても) であるため、データをバイト (たとえば 16 進数) に変換します。両面が同じパディングを使用していることを確認してください。
AES 128 ビットは、CHIPERTEXT[16 オクテット] = AES(KEY[16 オクテット], PLAIN[16 オクテット])) として定義されており、文字列を使用する規則はありません。