- Notifications
You must be signed in to change notification settings - Fork69
AES encryption working between Objective-C and Java.
License
WelkinXie/AESCipher-iOS
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Using this code foriOS andAESCipher-Java forAndroid andJava 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 DataNSData * aesEncryptData(NSData *data, NSData *key);
Decryption:
// For String NSString * aesDecryptString(NSString *content, NSString *key);// For DataNSData * aesDecryptData(NSData *data, NSData *key);
Attention , this repo is based onAES-128 so you should use a16-byte-key . If you want to useAES-256 , changekKeySize tokCCKeySizeAES256 , and use 32 bytes' KEY.
Additionally you can modify thekInitVector with another 16 bytes string in line 14 ofAESCipher.m , but you should make sure to keep it the same withIV_STRING in line 23 ofAESCipher-Java.
与AESCipher-Java 一并使用能达到 在iOS、Android、Java后台产生相同密文、正确解密成明文的目的。用 C 的风格来编写是为了提高些许安全性。
加密方法:
// For String NSString * aesEncryptString(NSString *content, NSString *key);// For DataNSData * aesEncryptData(NSData *data, NSData *key);
解密方法:
// For String NSString * aesDecryptString(NSString *content, NSString *key);// For DataNSData * aesDecryptData(NSData *data, NSData *key);
注意 ,由于这个库是基于AES-128 的,因此请确保传入的 KEY 大小为16 字节。如果要使用AES-256 ,修改kKeySize 为kCCKeySizeAES256,然后提供 32 字节的 KEY 就可以了。
另外你也可以将AESCipher.m 第 14 行中的kInitVector 修改为其他 16 字节的字符串,但请确保其与AESCipher-Java 第 23 行处的IV_STRING 保持一致。