Моя цель - зашифровать данные в Iphone и расшифровать их на Java-сервере.
Я использую симметричное шифрование.
Я сгенерировал ключ, используя KeyGenerator на стороне Java.
код для генерации ключа выглядит следующим образом:
// Java-код для генерации ключа
File keyFile = new File("F:/key","mykey.key");
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
SecretKey skey = kgen.generateKey();
byte[] enc= skey.getEncoded();
FileUtils.writeStringToFile(keyFile ,Base64.encodeBase64String(enc),"UTF-8");
Ниже приведен код Java для расшифровки:
//получить ключ из файла
File file = new File("F:/key", "mykey.key");
SecretKeySpec keySpec= null;
try {
byte[] keyBytes = Base64.decodeBase64(FileUtils.readFileToString(file,"UTF-8"));
keySpec= new SecretKeySpec(keyBytes, 0, 16, "AES");
byte[] raw = keySpec.getEncoded();
} catch (Exception e) {
e.printStackTrace();
}
// Расшифровать строку encryptedString (из Iphone)
byte[] tempByte = Base64.decodeBase64(encryptedString);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
byte[] cipherData = cipher.doFinal(tempByte);
String ttt = new String(cipherData ,"UTF-8");
System.out.println(ttt);
И код iphone аналогичен коду, указанному в следующей ссылке: Шифрование данныхс Objective-C и расшифровывать его с помощью Java. Проблема
Я получаю следующее исключение при расшифровке в Java.*
Пожалуйста, помогите ...