OpenSSL常用命令快速上手

RSA篇

我们的操作流程为:

  1. 生成RSA密钥key.pem(也称私钥,密钥对)。
  2. key.pem中导出公钥pubkey.pem
  3. 使用公钥pubkey.pem对文件test.txt进行加密,得到密文test.enc
  4. 使用私钥key.pemtest.enc进行解密,得到译文test.dec
  5. 对比test.txttest.dec,应该是一样的。
  6. 使用key.pemtest.txt进行签名,得到test.sig
  7. 使用pubkey.pemtest.txt的签名test.sig进行验签。
key.pem               ====导出=====> pubkey.pem
pubkey.pem + text.txt ===公钥加密===> test.enc
key.pem    + test.enc ===私钥解密===> test.deckey.pem    + test.txt ===私钥签名===> test.sig
pubkey.pem + test.txt + test.sig ==> 验证签名

命令如下:

1. 生成密钥对并导出公钥

# 生成密钥对
openssl genrsa -out key.pem# 导出公钥
openssl rsa -in key.pem -pubout -out pubkey.pem

参数说明:

  • -out: 指定输出的文件
  • -in: 指定输入的文件
  • -pubout: 指定输出公钥。如果不加该参数,默认输出的为私钥

2. 加解密操作

# 生成一个待加密的测试文件
echo "hello, world" > test.txt
# 公钥加密
openssl rsautl -encrypt -pubin -inkey pubkey.pem -in test.txt -out test.enc
openssl rsautl -decrypt -inkey key.pem -in test.enc -out test.dec

参数说明:

  • -encrypt: 加密操作
  • -decrypt: 解密操作
  • -pubin: 指定输入公钥。如果不加该参数,则认为输入的为私钥
  • -inkey: 密钥文件

核对文件

# 如果没有任何输出,则文件相同
cmp test.txt test.dec

3. 签名、验签

# 签名
openssl dgst -sign key.pem -sha256 -out test.sig test.txt
# 验签
openssl dgst -verify pubkey.pem -sha256 -signature test.sig test.txt

参数说明:

  • -sign: 使用私钥签名
  • -verify: 使用公钥验签
  • -sha256: 摘要算法,也可以为md5/sha1/sha384/sha512等,签名验签使用的摘要算法应相同
  • -signature: 待验证的签名文件

4. 查看密钥信息

# 查看私钥信息
openssl rsa -in key.pem -noout -text# 查看公钥信息
openssl rsa -pubin -in pubkey.pem -noout -text

参数说明:

  • -noout: 不打印密钥数据
  • -text: 以文本方式打印密钥信息

OpenSSL常用命令快速上手相关推荐

  1. Emacs常用命令快速参考

    Emacs常用命令快速参考 Emacs常用命令的汇总,来自Emacs参考卡片 注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键 ...

  2. Python爬虫之pyppeteer常用API快速上手

    文档API Reference - Pyppeteer 0.0.25 documentation 快速上手常用API总结: # -*- coding:utf-8 -*- import asyncio ...

  3. Python办公自动化实战 02 | 三十分钟手把手教学批处理命令快速上手提升办公效率

    一.专题简介 1.1 专题概述 本次实验主要介绍了如何利用批处理命令快速处理文件和目录,以达到快速提升办公效率的目的.内容包括但不限于: 利用批处理命令快速提升办公效率 01-- 批处理,一项简单但实 ...

  4. OpenSSL 常用命令

    1.生成 rsa 私钥 openssl genrsa -aes256 -out ca_private.key 2048 2.去除私钥密码保护 openssl rsa -in ca_private.ke ...

  5. 快速上手Linux核心命令(一):核心命令简介

    Linux核心命令系列文章目录 快速上手Linux核心命令(一):核心命令简介 快速上手Linux核心命令(二):关机.重启 快速上手Linux核心命令(三):文件和目录操作命令 快速上手Linux核 ...

  6. PM2入门及其常用命令

    文章目录 一.PM2概述 1.简介 2.普通 node 进程的缺陷 3.PM2优点 4.PM2安装 二.PM2命令详情 1.PM2常用命令 1.1 启动 1.2 管理进程 1.3 应用信息查看 1.4 ...

  7. MongoDB快速上手、windows安装、常用命令、文档基本增删改查、mongoDB的索引

    MongoDB快速上手 目标 理解MongoDB的业务场景.熟悉MongoDB的简介.特点和体系结构.数据类型等. 能够在Windows和Linux下安装和启动MongoDB.图形化管理界面Compa ...

  8. 快速上手linux玩转典型网络,5- 快速上手Linux玩转典型应用- Linux常用命令

    6- Linux常用命令 软件操作命令执行操作命令软件包管理器yum 安装软件yum install xxx 卸载软件yum remove xxx 搜索软件yum search xxx 清除缓存yum ...

  9. Linux工具快速上手,Linux很实用命令

    Linux工具快速上手 前言 Linux下有很多命令行工具供我们使用,每个工具总是提供了大量参数供我们选择: 实际工作中,我们用到的工具,最常用的总是那么几个参数组合: 为此,我写了这本书相对实用的书 ...

最新文章

  1. C++开源跨平台类库集
  2. R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text label)
  3. local_response_normalization 和 batch_normalization
  4. python生成元组_python 列表生成、元组、字典
  5. 编写高质量的代码--基础:结构和样式,行为的分离
  6. java break和return的区别_【java】break,continue和return区别
  7. LNK2019无法解析的外部符号 public: static struct cv::Ptr class cv::xfeatures2d::SURF问题解决
  8. numpy的广播机制
  9. L01-03:python学习之控制语句
  10. 生成函数学习笔记心得
  11. python hist2d_具有二维数组的Python Matplotlib Hist2d
  12. 7-5 jmu-Java-03面向对象基础-05-覆盖 (20 分)
  13. css-对号/叉号(纯css)
  14. Python三步爬取VMgirls小姐姐图片
  15. 移动端html网页真机调试,Mac端调试iphone移动端网页
  16. 继戴姆勒之后 德国公司Bury就汽车通信相关专利授权投诉诺基亚
  17. 芯片的设计流程和流片成本
  18. 快播CEO王欣出狱;1号单车宣布停运;网易考拉聚美等海淘商品涉假 丨价值早报
  19. SBAC-US30 无法读取 SxS PRO X卡
  20. Mybatis-Plus查询之条件查询(用户名查询)(批量查询)

热门文章

  1. linux 进程简介
  2. 解决非相同网段的包被丢弃的问题
  3. 用户控件(.ascx)调用网页(.aspx)的方法
  4. AS2的MD5/SHA1/TEA等加密算法类
  5. 使用 document.onreadystatechange()来判断页面加载完
  6. python中nomodulenamed怎么解决_关于 python ImportError: No module named 的问题
  7. 【Groovy】Groovy 脚本调用 ( Groovy 配置文件格式 | Groovy 配置文件读取 | 完整配置文件及解析代码示例 )
  8. 【C 语言】数组 ( 多维数组本质 | 步长角度 理解 多维数组本质 )
  9. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )
  10. 【运筹学】线性规划 单纯形法 ( 基矩阵 | 基变量 | 非基矩阵 | 非基变量 | 矩阵分块形式 | 逆矩阵 | 基解 | 基可行解 )