【发布时间】:2014-04-07 22:04:26
【问题描述】:
我有一个 AES 加密/解密的 Android 示例。
https://github.com/itog/CryptoSample/blob/master/src/com/pigmal/android/ex/crypto/Crypto.java#L35
我想在 iOS 上解密它。这看起来几乎是不可能的。我发现这样做更容易,但失败了:
https://github.com/Gurpartap/AESCrypt-ObjC
我什至没有从 base64 解码中得到好的响应。这是我的代码:
NSData *encryptedData = [NSData base64DataFromString:encrypted];
// returns null
NSData *decryptedData = [encryptedData decryptedAES128DataUsingKey:[[CRYPT_SEED dataUsingEncoding:NSUTF8StringEncoding] SHA256Hash] error:&error];
NSString* result = [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding];
【问题讨论】:
-
iOS 和 android 必须使用相同的加密模式和填充才能正常工作。
-
您需要学习一点加密知识,确定 Android 代码使用的选项和输入,并将它们复制到 iOS 代码中。 CommonCrypto 是你的朋友,认识他吧。在不理解的情况下使用加密可能会产生可靠的结果。
-
确实如此。但目标不是完全保护数据,而是延迟潜在的黑客攻击。我只想为一个临时项目提供一个加密的提要。
-
我刚刚在stackoverflow.com/questions/40421146/… 中发布了一个可以接受的答案。
标签: android ios encryption cryptography aes