RSA

一、生成RSA密钥

1、打开终端,cd到目标文件夹。【生成的证书文件都在当前路径下,目标文件夹即是保存证书文件的文件夹】

2、命令:openssl,进入openssl环境。【由于Mac自带openssl环境,所以不用安装】

3、命令:genrsa -out rsa_private_key.pem 1024,生成RSA私钥。【1024是指定密钥的长度,rsa_private_key是私钥的名称】

4、命令:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,生成公钥。【pem文件是一个base64编码的二进制文件】

5、命令:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out pkcs8_private_key.pem,将RSA私钥转换成PKCS8格式。【后边一定要加-out pkcs8_private_key.pem,将转换后的私钥保存在pkcs8_private_key.pem,不然得到的结果要设置密码且显示在终端中,这个和得到pem中的私钥有差异。】

6、这样就可以得到RSA密钥,公钥使用第4步生成的公钥,私钥使用第5步转PKCS8格式后保存的私钥。【pem文件可以直接文本编辑器打开】

附:GitHub RSA工具类 Objective-C-RSA

二、生成RSA加密证书

a、证书的概念在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于解密。

1、打开终端,cd到目标文件夹。【生成的证书文件都在当前路径下,目标文件夹即是保存证书文件的文件夹】

2、命令:openssl,进入openssl环境。【由于Mac自带openssl环境,所以不用安装】

3、命令:genrsa -out rsa_private_key.pem 1024,生成RSA私钥。【1024是指定密钥的长度,rsa_private_key是私钥的名称】

4、命令:req -new -key  rsa_private_key.pem -out rsaCerReq.csr,生成证书请求文件rsaCertReq.csr。【这一步会提示输入国家、省份、mail等信息,可以根据实际情况填写,部分可不填或随便填写。这里可能会输入一个私钥保护密码】

5、命令:x509 -req -days 3650 -in rsaCerReq.csr -signkey rsa_private_key.pem -out rsaCert.crt,生成证书rsaCert.crt,并设置有效时间。

6、命令:x509 -outform der -in rsaCert.crt -out rsa_public_key.der,生成供iOS使用的公钥文件rsa_public_key.der。

7、命令:pkcs12 -export -out rsa_private_key.p12 -inkey rsa_private_key.pem -in rsaCert.crt,生成供iOS使用的私钥文件rsa_private_key.p12。【这一步会提示给私钥文件设置密码,直接输入想要设置密码即可,然后敲回车,然后再验证刚才设置的密码,再次输入密码,然后敲回车。在解密时,rsa_private_key.p12文件需要和这里设置的密码配合使用,因此需要牢记此密码】

8、命令:rsa -in rsa_private_key.pem -out java_rsa_public_key.pem -pubout,生成供Java使用的公钥java_rsa_public_key.pem。

9、命令:pkcs8 -topk8 -in rsa_private_key.pem -out java_pkcs8_private_key.pem -nocrypt,生成供Java使用的私钥java_pkcs8_private_key.pem。

b、证书的使用。

1、导入密钥文件,把生成的der和p12拖入到项目中,并导入Security.framework框架。

2、OC中在bundle中要是找不到der类型的文件,此时,需要改一下上述生成的 rsa_public_key.der 文件的后缀为 .cer 才可以。

三、RSA的使用

使用rsa工具类进行加密解密和加签验签

1、公钥加密,私钥解密。【注意公钥给的是pem里面的字符串的话,需要使用base64解码后生成公钥;给的是der证书的话直接使用。在rsa工具类中有对应的方法】

2、私钥加签,公钥验签。

3、若要加强安全的话,使用两套密钥,分别进行加密解密和加签验签。

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