iOS RSA 加密解密

前言

后台给的公钥,私钥,不管是公钥加密私钥解密还是私钥加密公钥解密都是可以的,但是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

WX20190108-180638@2x.png

复制上图的私钥保存。

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 的加密简单介绍到这里。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 最近项目中对接口进行了rsa 加密。 写下过程以便复习 公钥私钥一般是有后台给的,这里为了方便 自己生成一对...
    肖无情阅读 2,797评论 5 6
  • 嘟哝嘟哝:最近接到一个任务:在客户端动态生成RSA密钥对,然后向服务器发送这个密钥对中的公钥字符串,由服务器进行公...
    TimmyR阅读 8,009评论 19 21
  • 终端 cd Desktop/ 到桌面 执行下面代码 生成公钥加密文件,私钥解密文件。opensslOpenSS...
    seventhboy阅读 1,683评论 3 0
  • 亲子日记第179篇 今天又是充实的一天。上午忙工作棘手的事情,下午又参加了公司内部组织的关于执行力的培训,这一...
    子浩妈妈阅读 163评论 0 0
  • “天鸽”肆虐来不及恢复,“帕卡”劲势而至……为自己安然在家,嘴边有暖茶,手边是书架,而感恩自己拥有这份小幸...
    宝儿Bonnie阅读 243评论 3 1