RNCryptor/JNCryptor - расшифровать строку в ios, которая зашифрована в Android
Hellp All,
Я использовал RNCryptor/JNCryptor для iOS и Android, следующий код для шифрования в Android и расшифровки в iOS.
Зашифровать код в Android
public static String EncryptMessage(String message)
{
JNCryptor cryptor = new AES256JNCryptor();
byte[] plaintext = message.getBytes();
byte[] ciphertext = null;
try {
ciphertext = cryptor.encryptData(plaintext,Constants.ENCRYPTION_KEY.toCharArray());
} catch (CryptorException e) {
// Something went wrong
e.printStackTrace();
}
return Base64.encodeBytes(ciphertext);
}
Расшифровать код в iOS
NSData *fromAData = [@"AwEche05IIj/OYEN5brgF/p6jyfKfARJliUQwEwa2lko40+ScPMumlDSIZWB2O6XRZjIucXVbggieWaHb2x6sJkYYt7tn3k17V5Jd5PAnkIoFA==" base64DecodedData];
NSData *fromADecryptedData = [RNDecryptor decryptData:fromAData withSettings:kRNCryptorAES256Settings password:@"password" error:&decryptionError];
NSLog(@"decryptionError %@", decryptionError);
NSLog(@"Result = %@", fromPHPDecryptedData);
NSLog(@"Result = %@", [[NSString alloc] initWithData:fromADecryptedData encoding:NSUTF8StringEncoding]);
Я также попробовал простой расшифровать с паролем
NSData *fromADecryptedData = [RNDecryptor decryptData:fromAData withPassword:@"password" error:&decryptionError];
Получение ошибки неизвестного заголовка, код ошибки =2
Я использую одно и то же "пароль" в качестве пароля на обеих сторонах.
Если у кого-то есть идеи, пожалуйста, дайте мне знать, если я что-то упустил.
1 ответ
Решение
Это сработало, как только я обновил библиотеку RNcryptor в своей iOS...
Моя версия библиотеки iOS RNcryptor - v2.2
Версия Android 1.2.0