//导入头文件
#import "RSA.h"
- (void)viewDidLoad {
[super viewDidLoad];
//第一步:获取公钥数据
//公钥:iOS客户端使用.我们拿到手后,只需要根绝公钥初六数据就可以
NSString *pubkey = @"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEChqe80lJLTTkJD3X3Lyd7Fj+\nzuOhDZkjuLNPog3YR20e5JcrdqI9IFzNbACY/GQVhbnbvBqYgyql8DfPCGXpn0+X\nNSxELIUw9Vh32QuhGNr3/TBpechrVeVpFPLwyaYNEk1CawgHCeQqf5uaqiaoBDOT\nqeox88Lc1ld7MsfggQIDAQAB\n-----END PUBLIC KEY-----";
//私钥:用于保密数据,(必须保密),私钥泄漏会造成安全问题产生
NSString *privkey = @"-----BEGIN RSA PRIVATE KEY-----\nMIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMQKGp7zSUktNOQk\nPdfcvJ3sWP7O46ENmSO4s0+iDdhHbR7klyt2oj0gXM1sAJj8ZBWFudu8GpiDKqXw\nN88IZemfT5c1LEQshTD1WHfZC6EY2vf9MGl5yGtV5WkU8vDJpg0STUJrCAcJ5Cp/\nm5qqJqgEM5Op6jHzwtzWV3syx+CBAgMBAAECgYEApSzqPzE3d3uqi+tpXB71oY5J\ncfB55PIjLPDrzFX7mlacP6JVKN7dVemVp9OvMTe/UE8LSXRVaFlkLsqXC07FJjhu\nwFXHPdnUf5sanLLdnzt3Mc8vMgUamGJl+er0wdzxM1kPTh0Tmq+DSlu5TlopAHd5\nIqF3DYiORIen3xIwp0ECQQDj6GFaXWzWAu5oUq6j1msTRV3mRZnx8Amxt1ssYM0+\nJLf6QYmpkGFqiQOhHkMgVUwRFqJC8A9EVR1eqabcBXbpAkEA3DQfLVr94vsIWL6+\nVrFcPJW9Xk28CNY6Xnvkin815o2Q0JUHIIIod1eVKCiYDUzZAYAsW0gefJ49sJ4Y\niRJN2QJAKuxeQX2s/NWKfz1rRNIiUnvTBoZ/SvCxcrYcxsvoe9bAi7KCMdxObJkn\nhNXFQLav39wKbV73ESCSqnx7P58L2QJABmhR2+0A5EDvvj1WpokkqPKmfv7+ELfD\nHQq33LvU4q+N3jPn8C85ZDedNHzx57kru1pyb/mKQZANNX10M1DgCQJBAMKn0lEx\nQH2GrkjeWgGVpPZkp0YC+ztNjaUMJmY5g0INUlDgqTWFNftxe8ROvt7JtUvlgtKC\nXdXQrKaEnpebeUQ=\n-----END RSA PRIVATE KEY-----";
//1创建字符串
NSString *string = @"狗蛋和如花";
//2创建存储公钥的字符串
NSString *enPubKey;
//使用RSA加密数据
//参数1:要加密的数据
//参数2:公钥字符串
enPubKey = [RSA encryptString:string publicKey:pubkey];
NSLog(@"enPubKey=%@",enPubKey);
#warning RSA加密的结果,每一次都不一样,但是可以通过同一个私钥进行解密
//解密:一般都是后台做得(但是我们需要知道)
//1
NSString *resultString =@"YkexNfxM5ZOI64MQes2u3Ro9hOpztOJOubfVTA322HiayMq3ja9hpJqua9YqMm7OqEAtwDCOmFz9cfakFCkUa+GJPHpiEqCKuwjS+x1R5jATzbjl76+BqHGmUn2Tbm6dRj/v/f/Pwn34Jq1dPE6miXL2u+fjIVBGEZf1UnN6a9I=";//这快的字符串不需要我们管理,XXXXXXX经过加密之后需要把加密的内容传递给后台,此时后台会返回给你一个字符串
//2创建存储私钥的字符串
NSString *decPubKey;
decPubKey = [RSA decryptString:resultString privateKey:privkey];
NSLog(@"decPubKey=%@",decPubKey);
/*
加密和加签
加密:公钥放在iOS客户端,并且使用公钥对数据进行加密,服务端拿到数据后用私钥进行解密
加密完全是为了加密
加签: 私钥放在iOS客户端,并且使用数据进行加签,服务端拿到数据后用公钥进行验签
加签主要是为了验证(为了防止恶意的攻击),防止别人模拟我们的客户端对我们的服务器进行攻击,导致服务器瘫痪
*/
}
数据加密RSA对称加密
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 数据传输加密 在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时,开发者自然会想到对其进行...
- 在看公司的项目代码的时候,注意到公司在请求数据,获取数据的时候,客户端都做了加密和解密,因为之前并没有在实际开发中...
- 对称加密(DES) 加密和解密数据都是使用同一个key,这方面的算法有DES。http://www.cnblogs...