问题
问题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;