美文网首页
ios RSA加密

ios RSA加密

作者: 西充小凡哥 | 来源:发表于2020-04-22 13:58 被阅读0次

后台给的公钥,私钥,不管是公钥加密私钥解密还是私钥加密公钥解密都是可以的,但是Mac 通过openssl生成的公钥私钥还有一点点问题。(最大的问题还是获取私钥的不对)。
感谢文章:iOS之RSA加密解密与后台之间的双向加密详解
本文只是简单说明Mac 通过openssl 生成公钥私钥,获取私钥,公钥的时机以及注意点。

生成公钥私钥。

  1. cd 到一个文件夹,比如RSA
    cd /Users/xxxx/Desktop/RSA

2.执行Mac自带的openssl命令。
openssl

3.生成私钥
genrsa -out rsa_private_key.pem 1024

4.将私钥转成PKCS8的格式(必须转)格式转好后立刻复制.切记后面使用的私钥加密解密就是执行命令行之后终端打印的私钥,而不是执行命令行之后重新生成的私钥,(网上一些命令行是错误的,一定要注意)。

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

image

复制上图的私钥保存。

5.生成公钥。

rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

测试RSA加密解密。

GitHub RSA 一个工具类 Objective-C-RSA,然后下载,后面加密解密使用。

通过文本编辑打开刚才的RSA文件里的rsa_public_key.pem,拿到公钥。

私钥使用第4步转PKCS8格式后保存的私钥。

测试结果:

NSString *publicKey = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0OiXHaees9Aj5h31YYGw5nfCUdS6MK0T5UrJAfIdwkUbadDOXclDVK+ftBMe+DVAn7xSORPi1cjiBBjU+lo/hmNGoDWQGgxr/LAkaJz3/A1Sv+S1d3deTc6SFN+toDQbpsx3jYOUrJM1B8olUI1a9f+DgzkF/sIKJ7V4Wh7XtlQIDAQAB";
    //私钥
    NSString *privateKey = @"MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALQ6Jcdp56z0CPmHfVhgbDmd8JR1LowrRPlSskB8h3CRRtp0M5dyUNUr5+0Ex74NUCfvFI5E+LVyOIEGNT6Wj+GY0agNZAaDGv8sCRonPf8DVK/5LV3d15NzpIU362gNBumzHeNg5SskzUHyiVQjVr1/4ODOQX+wgontXhaHte2VAgMBAAECgYAljox63sXpk70fCq4DMay74P7WYQj/KrEn56S/rXOn8I48TcTGhYr0sT6WdM2O/EU83SSCdTsCzLebo4iK72Mx/VI1alKWSfyncfXi51gZePpgVaudTG9kcI8sszRG+P7zfPptr4HxZ7X2LveJy5myImqQomESEUvDVHdZCtIIgQJBANxT7Bev+LA+jH9gSV4Uc14B5YYabpLso39t/uhTaOdVNxV2eV2UAF1PGg2R3IMwlzHcjRkDDpBiWuXaxbTKCaECQQDRaCUb7J1mPDBrEIi1Aupho16b3Sy82vzZ9WGLgMl+eMKbSy0rAdJA10CtNKL2Gq7EGNoN4CpDPPulJTmm6Cd1AkAajH5BaHHmAtN5McgFbx9rr3zRyPOT/rHA1CdIJWzZmzoU+v6q2P+mPrbb9byFjmBZoMLbxbOGkGN1mQQDweihAkEAkAJ9Mr0AaeSOr7KJMWK16Tu+vpXWRHKdXQ9Ba/y/lThbLQ0AHQl9nJXrprICOBmVgspMeypkJiV0Mdht03joWQJAaF8kDoCNkpp++6aqVbqFBYysiW83AiHgL0JA5dhQ2XzIFYZIpLOsM+Je4yw9ppQ76DqePg6pqRKjR6m9Gatn+A==";
    //测试要加密的数据
    NSString *sourceStr = @"iOS端RSA加密";
    //公钥加密
    NSString *encryptStr = [RSA encryptString:sourceStr publicKey:publicKey];
    //私钥解密
    NSString *decrypeStr = [RSA decryptString:encryptStr privateKey:privateKey];

    NSLog(@"公钥加密私钥解密后的数据 %@",decrypeStr);

    //私钥加密
    NSString *encryptStr1 = [RSA encryptString:sourceStr privateKey:privateKey];
    //公钥解密
    NSString *decrypeStr1 = [RSA decryptString:encryptStr1 publicKey:publicKey];
    NSLog(@"私钥加密公钥解密后的数据 %@",decrypeStr1);

结果:

2019-01-08 18:17:48.834840+0800 RSAUtil[53592:4032334] 原始数据:iOS端RSA加密 公钥加密私钥解密后的数据 iOS端RSA加密
2019-01-08 18:17:48.843686+0800 RSAUtil[53592:4032334] 原始数据:iOS端RSA加密 私钥加密公钥解密后的数据 iOS端RSA加密

可以看到公钥加密私钥解密后的数据是正常的,私钥加密公钥解密后的数据是正常的。

需要注意的是:RSA 文件中已经对结果做了base64加密解密

end RSA 的加密简单介绍到这里。

作者:雪_晟
链接:https://www.jianshu.com/p/356f91f9e3b1
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • iOS中使用RSA加密

    iOS中使用RSA加密

  • iOS RSA2048本地生成密钥对

    iOS中生成RSA密钥字符串iOS使用OpenSSL进行RSA加密、验签的心得RSA_generate_key_e...

  • iOS-15 加密

    1iOS 常用加密方式讲解 - 简书 2iOS加密方式(RSA签名、加密、AES) - 简书

  • iOS RSA加密与解密 签名与验签(附Java端处理)

    本篇文章将涉及以下几个操作:1、iOS端使用RSA公钥加密,iOS端使用RSA私钥解密。2、iOS端使用RSA私钥...

  • RSA非对称加密

    RSA非对称加密 RSA非对称加密, 适用于Java和iOS 应用场景:用户登录时对登录密码进行加密 启动终端, ...

  • iOS 关于加密

    常见的iOS代码加密常用加密方式包括Base64加密、MD5加密、AES加密、RSA加密等。 Base64加密 B...

  • iOS学习-数据加密

    在iOS端使用RSA加密的记录 一、需求: SDK开发,使用RSA加密和后台进行数据交互,后台是PHP要求:1、p...

  • iOS之RSA加密解密与后台之间的双向加密详解

    原文iOS之RSA加密解密与后台之间的双向加密详解openssl生成RSA格式的公私钥,并转为pkcs8格式 序言...

  • ios RSA加密

    看这篇文章基本上就会使用了,当然并不深入到原理RSA加解密 RSA是一种非对称加密,它有一对密钥,分别称为 公钥和...

  • ios RSA加密

    后台给的公钥,私钥,不管是公钥加密私钥解密还是私钥加密公钥解密都是可以的,但是Mac 通过openssl生成的公钥...

网友评论

      本文标题:ios RSA加密

      本文链接:https://www.haomeiwen.com/subject/opnuihtx.html