Using this code for iOS and AESCipher-Java for Android and Java back-end lets you encrypt and decrypt with AES accurately. Coding with C style is just for security.
Encryption:
// For String
NSString * aesEncryptString(NSString *content, NSString *key);
// For Data
NSData * aesEncryptData(NSData *data, NSData *key);
Decryption:
// For String
NSString * aesDecryptString(NSString *content, NSString *key);
// For Data
NSData * aesDecryptData(NSData *data, NSData *key);
Additionally you can modify the kInitVector with another 16 bytes string in line 14 of AESCipher.m , but you should make sure to keep it the same with IV_STRING in line 23 of AESCipher-Java.
与 AESCipher-Java 一并使用能达到 在iOS、Android、Java后台产生相同密文、正确解密成明文的目的。用 C 的风格来编写是为了提高些许安全性。
加密方法:
// For String
NSString * aesEncryptString(NSString *content, NSString *key);
// For Data
NSData * aesEncryptData(NSData *data, NSData *key);
解密方法:
// For String
NSString * aesDecryptString(NSString *content, NSString *key);
// For Data
NSData * aesDecryptData(NSData *data, NSData *key);
另外你也可以将 AESCipher.m 第 14 行中的 kInitVector 修改为其他 16 字节的字符串,但请确保其与 AESCipher-Java 第 23 行处的 IV_STRING 保持一致。