イメージ内のテキストを暗号化するステガノグラフィーシステムを作成しています。テキストを暗号化してから画像に埋め込むことにしました。 Steganographyアルゴリズムは、String入出力で動作します。javax.crypto.BadPaddingExceptionを克服できない
私の気まぐれのために、私はDESとAESアルゴリズムを使用しようとしていましたが、上記の例外に遭遇しました。私は、例えばAESアルゴリズムの暗号化/復号化方法を紹介します:
public static byte[] encryptText(String plainText,SecretKey secKey) throws Exception{
// AES defaults to AES/ECB/PKCS5Padding in Java 7
Cipher aesCipher = Cipher.getInstance("AES");
aesCipher.init(Cipher.ENCRYPT_MODE, secKey);
byte[] byteCipherText = aesCipher.doFinal(plainText.getBytes());
return byteCipherText;}
public static String decryptText(byte[] byteCipherText, SecretKey secKey) throws Exception {
// AES defaults to AES/ECB/PKCS5Padding in Java 7
Cipher aesCipher = Cipher.getInstance("AES");
aesCipher.init(Cipher.DECRYPT_MODE, secKey);
byte[] bytePlainText = aesCipher.doFinal(byteCipherText);
return new String(bytePlainText);
}
そして、ここでは、呼び出し元(暗号側)である:
//sending the text to encrypt using AES algorithm
byte[] cipherText = new AES_Algorithm().encrypt(messageDesc.getText(), key);
//converting into a String to encrypt using Steganography
newStringtoEncrypt = new String (cipherText);
そして、ここでは、呼び出し側(復号側)です - 例外:
//AES encrypted String after the Steganography's decryption
String decMessage = dec.decode(path, name);
//converting the String to byte []
byte [] byteArray = decMessage.getBytes();
try{
//HERE IS WHERE I GET THE EXCEPTION
//sending the byte array to decryption
String original = AES_Algorithm().decrypt(byteArray, key);
問題がありますか?
キーが類似しており、バイト配列としても(私はシーケンスを印刷して、それをチェックする) - しかし、私はAES/DES
を使用するときに私は、文字列からbyteArray
に変換するためにgetBytes()
を使用することはできませんと言われています解読アルゴリズム。
私のGODは、いかに単純な...私は2日間私の脳を棚上げしてきました - ありがとう! – prowler