OpenSSL常用命令快速上手
OpenSSL常用命令快速上手
RSA篇
我们的操作流程为:
- 生成RSA密钥
key.pem
(也称私钥,密钥对)。 - 从
key.pem
中导出公钥pubkey.pem
。 - 使用公钥
pubkey.pem
对文件test.txt
进行加密,得到密文test.enc
。 - 使用私钥
key.pem
对test.enc
进行解密,得到译文test.dec
。 - 对比
test.txt
和test.dec
,应该是一样的。 - 使用
key.pem
对test.txt
进行签名,得到test.sig
。 - 使用
pubkey.pem
对test.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常用命令快速上手相关推荐
- Emacs常用命令快速参考
Emacs常用命令快速参考 Emacs常用命令的汇总,来自Emacs参考卡片 注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键 ...
- Python爬虫之pyppeteer常用API快速上手
文档API Reference - Pyppeteer 0.0.25 documentation 快速上手常用API总结: # -*- coding:utf-8 -*- import asyncio ...
- Python办公自动化实战 02 | 三十分钟手把手教学批处理命令快速上手提升办公效率
一.专题简介 1.1 专题概述 本次实验主要介绍了如何利用批处理命令快速处理文件和目录,以达到快速提升办公效率的目的.内容包括但不限于: 利用批处理命令快速提升办公效率 01-- 批处理,一项简单但实 ...
- OpenSSL 常用命令
1.生成 rsa 私钥 openssl genrsa -aes256 -out ca_private.key 2048 2.去除私钥密码保护 openssl rsa -in ca_private.ke ...
- 快速上手Linux核心命令(一):核心命令简介
Linux核心命令系列文章目录 快速上手Linux核心命令(一):核心命令简介 快速上手Linux核心命令(二):关机.重启 快速上手Linux核心命令(三):文件和目录操作命令 快速上手Linux核 ...
- PM2入门及其常用命令
文章目录 一.PM2概述 1.简介 2.普通 node 进程的缺陷 3.PM2优点 4.PM2安装 二.PM2命令详情 1.PM2常用命令 1.1 启动 1.2 管理进程 1.3 应用信息查看 1.4 ...
- MongoDB快速上手、windows安装、常用命令、文档基本增删改查、mongoDB的索引
MongoDB快速上手 目标 理解MongoDB的业务场景.熟悉MongoDB的简介.特点和体系结构.数据类型等. 能够在Windows和Linux下安装和启动MongoDB.图形化管理界面Compa ...
- 快速上手linux玩转典型网络,5- 快速上手Linux玩转典型应用- Linux常用命令
6- Linux常用命令 软件操作命令执行操作命令软件包管理器yum 安装软件yum install xxx 卸载软件yum remove xxx 搜索软件yum search xxx 清除缓存yum ...
- Linux工具快速上手,Linux很实用命令
Linux工具快速上手 前言 Linux下有很多命令行工具供我们使用,每个工具总是提供了大量参数供我们选择: 实际工作中,我们用到的工具,最常用的总是那么几个参数组合: 为此,我写了这本书相对实用的书 ...
最新文章
- C++开源跨平台类库集
- R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text label)
- local_response_normalization 和 batch_normalization
- python生成元组_python 列表生成、元组、字典
- 编写高质量的代码--基础:结构和样式,行为的分离
- java break和return的区别_【java】break,continue和return区别
- LNK2019无法解析的外部符号 public: static struct cv::Ptr class cv::xfeatures2d::SURF问题解决
- numpy的广播机制
- L01-03:python学习之控制语句
- 生成函数学习笔记心得
- python hist2d_具有二维数组的Python Matplotlib Hist2d
- 7-5 jmu-Java-03面向对象基础-05-覆盖 (20 分)
- css-对号/叉号(纯css)
- Python三步爬取VMgirls小姐姐图片
- 移动端html网页真机调试,Mac端调试iphone移动端网页
- 继戴姆勒之后 德国公司Bury就汽车通信相关专利授权投诉诺基亚
- 芯片的设计流程和流片成本
- 快播CEO王欣出狱;1号单车宣布停运;网易考拉聚美等海淘商品涉假 丨价值早报
- SBAC-US30 无法读取 SxS PRO X卡
- Mybatis-Plus查询之条件查询(用户名查询)(批量查询)
热门文章
- linux 进程简介
- 解决非相同网段的包被丢弃的问题
- 用户控件(.ascx)调用网页(.aspx)的方法
- AS2的MD5/SHA1/TEA等加密算法类
- 使用 document.onreadystatechange()来判断页面加载完
- python中nomodulenamed怎么解决_关于 python ImportError: No module named 的问题
- 【Groovy】Groovy 脚本调用 ( Groovy 配置文件格式 | Groovy 配置文件读取 | 完整配置文件及解析代码示例 )
- 【C 语言】数组 ( 多维数组本质 | 步长角度 理解 多维数组本质 )
- 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )
- 【运筹学】线性规划 单纯形法 ( 基矩阵 | 基变量 | 非基矩阵 | 非基变量 | 矩阵分块形式 | 逆矩阵 | 基解 | 基可行解 )