在近期的项目中,由于有用到RSA加密:研究了许久最后在网上发现了一个比较有用的类库SecKeyWrapper
1.后台传输过来的是pem里面的公钥(经Base64)加密的字符串。
2.由于iOS自带的解析只能是对der格式的字符串进行加密。而PEM格式是一种对DER进行封装的格式,他只是把der的内容进行了base64编码并加上了头尾说明。
3.所以如何才能把后台的pem里面的公钥转成der的字符串????
(1)采用SecKeyWrapper
把公钥和你需要编码得Nsstring都转换成nsdata
用rsa公钥 编码你所需要编码得内容 然后转换成Nsstring
- (NSString *)encryptWithString:(NSString *)content{
NSData *publicKey = [NSData dataFromBase64String:RSA_KEY_BASE64];
NSData *usernamm = [content dataUsingEncoding: NSUTF8StringEncoding];
NSData *newKey= [SecKeyWrapper encrypt:usernamm publicKey:publicKey];
NSString *result = [newKey base64EncodedString];
return result;
}
得到的result返回给后台就可以了。