問題が 1 つあります。私のアプリケーションでは、AES 暗号化と復号化を使用しています。データを暗号化してサーバー側に送信すると、暗号化されたデータにジャンク文字が追加されているように見えます。しかし、どのように?
実はこの暗号化されたデータは、私の側では完全に復号化されているのですが、サーバーで受信するとジャンク文字が入っています。
これが私の暗号化コードです:
public static byte[] encrypt( byte[] keyData, byte[] data )
throws CryptoException, IOException
{
// Create the AES key to use for encrypting the data.
// This will create an AES key using as much of the keyData
// as possible.
AESKey key = new AESKey( keyData );
// Now, we want to encrypt the data.
// First, create the encryptor engine that we use for the actual
// encrypting of the data.
AESEncryptorEngine engine = new AESEncryptorEngine( key );
// Since we cannot guarantee that the data will be of an equal block
// length we want to use a padding engine (PKCS5 in this case).
PKCS5FormatterEngine fengine = new PKCS5FormatterEngine( engine );
// Create a BlockEncryptor to hide the engine details away.
ByteArrayOutputStream output = new ByteArrayOutputStream();
BlockEncryptor encryptor = new BlockEncryptor( fengine, output );
encryptor.write( data );
encryptor.close();
output.close();
return output.toByteArray();
}
サーバー上の復号化ロジックにアクセスできないことに注意してください。