問題
問題1:iOS端公鑰加密的數據用Java端私鑰解密。iOS不管使用系統自帶的sdk函數,用mac產生的或者使用java的jdk產生的公鑰和私鑰,進行加密解密本身均可以使用。不過ios加密,java解密,或者反過來就不能用了。要麼是沒法建立報告個-9809或-50的錯誤,要麼解出來是亂碼。ios系統函數種只有用公鑰加密,私鑰解密的方式。而公鑰加密每次結果都不一樣。
MAC上生成公鑰、私鑰的方法,及使用
java
問題2:服務器返回數據也要加密,老大打算用java私鑰加密,ios用公鑰解密(因爲iOS作不到用私鑰加密公鑰解密,只能私鑰加密公鑰驗籤),因此這種方案也有問題。經過看一些大牛的介紹,瞭解了iOS經常使用的加密方式
ios
加密方式
ios端進行DES加密、解密時很是方便vim
一、引入頭文件 #import "DES3Util.h" 二、加密時調用類方法 +(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key; 三、解密時調用類方法 +(NSString *)decryptUseDES:(NSString *)cipherText key:(NSString *)key;
ios端進行RSA加密、解密時很是方便安全
一、引入頭文件 #import "RSAUtil.h" 二、公鑰加密時調用類方法: + (NSString *)encryptString:(NSString *)str publicKey:(NSString *)pubKey; + (NSData *)encryptData:(NSData *)data publicKey:(NSString *)pubKey; 三、私鑰解密時調用類方法 + (NSString *)decryptString:(NSString *)str privateKey:(NSString *)privKey; + (NSData *)decryptData:(NSData *)data privateKey:(NSString *)privKey;
一、引入頭文件 #import "MD5Util" 二、加密時調用方法:- (NSString *)md5:(NSString *)str;
一、引入頭文件 #import "AES.h" 二、加密時調用方法 + (NSString *)encrypt:(NSString *)message password:(NSString *)password; 二、解密時調用的方法 + (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password;