0

イメージ内のテキストを暗号化するステガノグラフィーシステムを作成しています。テキストを暗号化してから画像に埋め込むことにしました。 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()を使用することはできませんと言われています解読アルゴリズム。

答えて

1

暗号化からの出力がバイナリであるあなたは、このコードではそうであるように、あなただけのStringに変換することはできません。

byte[] cipherText = new AES_Algorithm().encrypt(messageDesc.getText(), key); 
//converting into a String to encrypt using Steganography 
newStringtoEncrypt = new String (cipherText); 

あなたはStringとして暗号化されたデータが必要な場合は、何とかそれをエンコードする必要があります、例えばbase64encodingまたはhexEncoding

+0

私のGODは、いかに単純な...私は2日間私の脳を棚上げしてきました - ありがとう! – prowler

関連する問題