//导入头文件
#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客户端,并且使用数据进行加签,服务端拿到数据后用公钥进行验签
加签主要是为了验证(为了防止恶意的攻击),防止别人模拟我们的客户端对我们的服务器进行攻击,导致服务器瘫痪
*/
}
网友评论