Openssl RSA基本加解密操作

1. 产生私钥 (private key)

$ openssl genrsa -out key.pem 1024

结果是生成一个私钥文件: key.pem

$ file key.pem 
key.pem: PEM RSA private key

2. 产生对应的公钥 (public key)

$ openssl rsa -in key.pem -pubout -out pub.pem

结果是生成一个公钥文件: pub.pem

$ file pub.pem 
pub.pem: ASCII text

3. 使用公钥来加密字符串

因为openssl加密的是字节流, 为了便于观察, 我们的例子把所有的输入输出变成可读字符串,对于密文使用base64进行编码

$ echo -n "abcd" | openssl rsautl -encrypt -oaep -pubin -inkey pub.pem | openssl enc -A -base64
V6OdcZsflfYmQw0hMmf1Vg/X3N92JU7uIg2DxXQCJLoybo1TYvP+Nh944MuoVy+Z9BxE5h1sea8TIS81RXYAhif3rIy0FPNThNZcy1ryVu5odNLX/P01WdMYzYZvj5opoWka23cw5s5DnQJBklh9hLDiPcFR+8vuf0oEj+RsB24=

4. 使用私钥来解密前面生成的加密串

$ export CIPHER="V6OdcZsflfYmQw0hMmf1Vg/X3N92JU7uIg2DxXQCJLoybo1TYvP+Nh944MuoVy+Z9BxE5h1sea8TIS81RXYAhif3rIy0FPNThNZcy1ryVu5odNLX/P01WdMYzYZvj5opoWka23cw5s5DnQJBklh9hLDiPcFR+8vuf0oEj+RsB24="
$ echo -n ${CIPHER} | openssl enc -A -base64 -d | openssl rsautl -decrypt -oaep -inkey key.pem
abcd

5. 参数说明

  • -inkey file
    the input key file, by default it should be an RSA private key.
  • -pubin
    the input file is an RSA public key.
  • -encrypt
    encrypt the input data using an RSA public key.
  • -decrypt
    decrypt the input data using an RSA private key.
  • -oaep
    the padding algorithm is used, optimal asymmetric encryption padding (OAEP)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 嘟哝嘟哝:最近接到一个任务:在客户端动态生成RSA密钥对,然后向服务器发送这个密钥对中的公钥字符串,由服务器进行公...
    TimmyR阅读 12,538评论 19 21
  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 8,196评论 0 7
  • 北京到苏州有多远?唐童突然问起这个问题时,苏时正低头摆弄着自己的衣角。 夜里八点多,整个苏州城的霓虹渐次亮起来,倒...
    夏刀刀阅读 4,438评论 21 13
  • 最近无意中看了一个视频:怎样过好这一生(How to age gracefully),视频简介是这样的:怎样过好这...
    燕公子职场阅读 6,936评论 12 20

友情链接更多精彩内容