使用场景:iOS中部分隐私数据进行加密之后再传输到服务端
原理:在iOS开发中将需要加密的NSString类型的字符串对象A使用RSA算法转为NSData类型的数据dataA,再将dataA通过base64算法转为NSString类型的对象。
用法流程:
1.从 https://github.com/ideawu/Objective-C-RSA 将代码拉取到本地,将RSA.h和RSA.m文件拖入项目中。
2.在需要使用的.m文件中导入#import "RSA.h"头文件,向服务端的同学获取公钥(NSString类型的)pubKey,这个可以存本地。
NSString *pubkey = @"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI2bvVLVYrb4B0raZgFP60VXY\ncvRmk9q56QiTmEm9HXlSPq1zyhyPQHGti5FokYJMzNcKm0bwL1q6ioJuD4EFI56D\na+70XdRz1CjQPQE3yXrXXVvOsmq9LsdxTFWsVBTehdCmrapKZVVx6PKl7myh0cfX\nQmyveT/eqyZK1gYjvQIDAQAB\n-----END PUBLIC KEY-----";
3.调用加密RSA加密算法对字符串originStr进行加密,得到加密后的字符串resultStr。
NSString *pubKey = @"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI2bvVLVYrb4B0raZgFP60VXY\ncvRmk9q56QiTmEm9HXlSPq1zyhyPQHGti5FokYJMzNcKm0bwL1q6ioJuD4EFI56D\na+70XdRz1CjQPQE3yXrXXVvOsmq9LsdxTFWsVBTehdCmrapKZVVx6PKl7myh0cfX\nQmyveT/eqyZK1gYjvQIDAQAB\n-----END PUBLIC KEY-----";
NSString *originStr = @"1234567";
NSString * resultStr = [RSA encryptString:originStr publicKey:pubKey];
NSLog(@"%@",resultStr);
4.额外说明:对同一个字符串进行加密之后得到的字符串结果并非是一个固定值,只要结果不为空,并且和服务端的同学验证之后没问题就OK。
参看链接:https://www.jianshu.com/p/43f7fc8d8e14
资源来源:https://github.com/ideawu/Objective-C-RSA