数据加密RSA对称加密

//导入头文件
#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对称加密)