1

このエラーについて読みましたが、何も機能していないようです。

AES 復号化の機能は次のとおりです。

  public static byte[] decrypted_Data(byte[] crypt) throws Exception {

  String seed = "SuperSecretPassword";

  KeyGenerator keygen = KeyGenerator.getInstance("AES");

  SecureRandom secrand = SecureRandom.getInstance("SHA1PRNG");

  secrand.setSeed(seed.getBytes());

  keygen.init(128, secrand);

  SecretKey seckey = keygen.generateKey();

  byte[] rawKey = seckey.getEncoded();

 SecretKeySpec skeySpec = new SecretKeySpec(rawKey, "AES");

 Cipher cipher = Cipher.getInstance("AES");

 cipher.init(Cipher.DECRYPT_MODE, skeySpec);

 byte[] decrypted = cipher.doFinal(crypt);

  return decrypted;
}

暗号化の機能は、次の点を除いてまったく同じです。

cipher.init(Cipher.ENCRYPT_MODE, skeySpec);

Android では次のようにこれらの関数を呼び出しています。

BufferedInputStream bis = new BufferedInputStream(photoStream);

byte[] mybytearray = new byte[photoStream.available()];

mybytearray = encrypted_Data(mybytearray);

そして、サーバー上で次のように:

   byte[] mybytearray = new byte[10000000];

   mybytearray_1 = decrypted_Data(mybytearray_1);

これらの暗号化関数を使用するのはこれが初めてですが、受け取ったときに何が間違っていますか:

javax.crypto.BadPaddingException: Given final block not properly padded 
4

0 に答える 0