Mac中如何用openssl生成RSA密钥文件

注意:

  1. Mac中不能打开pem格式的文件,需要先把pem格式转换为der格式才能被识别
  2. 在iOS开发中pem和der格式的私钥不能直接使用,需要导出为p12格式的文件
  3. 以下操作生成的所有文件都会保存在用户初始cd到的文件夹
  • 生成一个1024位的私钥文件rsa_private_key.pem
    $ openssl genrsa -out rsa_private_key.pem 1024
  • 从私钥中提取公钥rsa_public_key.pem
    $ openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -outform PEM -pubout
  • 将私钥转换成 DER 格式:$ openssl rsa -in rsa_private_key.pem -out rsa_private_key.der -outform der
  • 将公钥转换成 DER 格式:$ openssl rsa -in rsa_public_key.pem -out rsa_public_key.der -pubin -outform der
  • 以明文输出私钥内容:$ openssl rsa -in rsa_private_key.pem -text -out rsa_private_key.txt
  • 以明文输出公钥内容:$ openssl rsa -in rsa_public_key.pem -out rsa_public_key.txt -pubin -pubout -text
  • 使用公钥加密小文件msg.txt:$ openssl rsautl -encrypt -pubin -inkey rsa_public_key.pem -in msg.txt -out msg.bin
  • 使用私钥解密小文件msg.bin:$ openssl rsautl -decrypt -inkey rsa_private_key.pem -in msg.bin -out a.txt
  • 把RSA私钥转换成PKCS8格式:$ pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt
  • 从私钥创建公钥证书请求:$ openssl req -new -key rsa_private_key.pem -out rsa_public_key.csr
  • 生成证书并签名(有效期10年):$ openssl x509 -req -days 3650 -in rsa_public_key.csr -signkey rsa_private_key.pem -out rsa_public_key.crt
  • 把crt证书转换为der格式:$ openssl x509 -outform der -in rsa_public_key.crt -out rsa_public_key.der
  • 把crt证书生成私钥p12文件:$ openssl pkcs12 -export -out rsa_private_key.p12 -inkey rsa_private_key.pem -in rsa_public_key.crt

参考资料

  1. 一步一步 搞定RSA(公钥、私钥)
  2. iOS开发加密实现-Base64,MD5,SHA1,ECB,BCB,RSA等
  3. 如何使用openssl生成RSA公钥和私钥对
  4. 使用OpenSSL生成RSA公钥和私钥
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 嘟哝嘟哝:最近接到一个任务:在客户端动态生成RSA密钥对,然后向服务器发送这个密钥对中的公钥字符串,由服务器进行公...
    TimmyR阅读 12,464评论 19 21
  • 说明:RSA为一种加密算法,生成的文件格式有两种,一种是PEM格式,另一种是DER格式,在Mac OSX 里面,p...
    阳光的大男孩儿阅读 17,314评论 3 27
  • 文章来源:http://blog.csdn.net/u010983974/article/details/5172...
    IT码哥阅读 5,437评论 0 0
  • 文 / 东郡格格 你是暗夜的天空里 最最璀璨的心事 从头到尾 燃尽了绝世的芳华 何时我才可以 美丽之后也不曾留下痕...
    梵利阅读 1,475评论 0 1
  • 就像是环境问题,就像是我们人成长中遇到的许许多多的问题。我们付出了巨大的代价,一次又一次的验证急功近利的遗祸无穷。...
    化浊阅读 1,917评论 0 0