当前位置: 首页 > news >正文

openssl 常用命令demo

RSA Private Key的结构(ASN.1)


RSAPrivateKey ::= SEQUENCE {
    version           Version,
    modulus           INTEGER,  -- n
    publicExponent    INTEGER,  -- e
    privateExponent   INTEGER,  -- d
    prime1            INTEGER,  -- p
    prime2            INTEGER,  -- q
    exponent1         INTEGER,  -- d mod (p-1)
    exponent2         INTEGER,  -- d mod (q-1)
    coefficient       INTEGER,  -- (inverse of q) mod p
    otherPrimeInfos   OtherPrimeInfos OPTIONAL
}

key生成

生成私钥
openssl genrsa -out rsa_private_key.pem 2048
生成公钥
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
PEM格式是文本格式,是把key的内容base64编码而来,数据格式称为DER

key查看

查看私钥内容
openssl pkey -in privkey.pem -text -noout
得到的结果会是如上private key结构的数据。包含modulus,publicExponent,privateExponent,prime1,prime2,exponent1,exponent2,coefficient,等等信息。

查看公钥内容
openssl pkey -pubin -in pubkey.pem -text -noout
包含modulus和publicExponent部分。


查看key信息:openssl rsa -noout -text -in myserver.key
查看csr信息:openssl req -noout -text -in myserver.csr
查看证书信息:openssl x509 -noout -text -in ca.crt

查看证书:
openssl x509 -in cert.pem -text -noout
openssl x509 -in cert.cer -text -noout
openssl x509 -in cert.crt -text -noout
openssl x509 -in certificate.der -inform der -text -noout

key格式转换
PEM转DER格式

# 私钥: PEM --(convert)--> DER
$ openssl rsa -inform PEM -in privkey.pem -outform DER -out privkey.der
  
# 公钥: PEM --(convert)--> DER
$ openssl rsa -inform PEM -in pubkey.pem -pubin -outform DER -out pubkey.der


DER转PEM格式

# 私钥: DER --(convert) --> PEM
$ openssl rsa -inform DER -in privkey.der -outform PEM -out privkey.PEM
  
# 公钥: DER --(convert) --> PEM
$ openssl rsa -inform DER -in pubkey.der -pubin -outform PEM -out pubkey.PEM

MTK 平台PEM,DER相互转换工具

python pem_to_der.py pubkey.pem pubkey.der 
# der_to_pem.py

key数据转换

DER转为数组data:
xxd -i pubk.der

the same result:
openssl rsa -in erase_pri.pem -pubout > test_pub.pem
openssl rsa -inform PEM -in test_pub.pem -pubin -outform DER -out test_pub.der
<==>
openssl rsa -in erase_pri.pem -pubout -outform DER >test_pub2.der

MTK 平台 DER转为数组的.h文件工具
./der_extractor pubkey.der pubkey.h ANDROID_SBC
 
[Usage] ./der_extractor pubk.der CHIP_KEY.ini SV5_SBC
[Usage] ./der_extractor priv.der CHIP_KEY.ini SV5_SIGN
[Usage] ./der_extractor pubk.der oemkey.h ANDROID_SBC
[Usage] ./der_extractor priv.der SIGNTOOL_2048_PRVK.h ANDROID_SIGN

签名、验签:

用私钥给文件签名
echo "hello there" > test.txt

openssl pkeyutl -sign -in test.txt -inkey key.pem -out test.sig
用公钥验证签名
openssl pkeyutl -verify -in test.txt -sigfile test.sig -pubin -inkey pubkey.pem
用公钥恢复签名文件的内容
openssl pkeyutl -verifyrecover -in test.sig -pubin -inkey pubkey.pem
用公钥加密文件
openssl pkeyutl -encrypt -in test.txt -pubin -inkey pubkey.pem -out test.enc
用私钥解密文件
openssl pkeyutl -decrypt -in test.enc -inkey key.pem -out test.dec
MTK代码中的相关工具
../vendor/mediatek/proprietary/scripts/sign-image_v2/der_extractor/


openssl kdf 校验key实例:

C:\Users>openssl version
OpenSSL 3.3.0 9 Apr 2024 (Library: OpenSSL 3.3.0 9 Apr 2024)

C:\Users>openssl kdf -keylen 32 -kdfopt digest:SHA256 -kdfopt pass:3199265327188065 -kdfopt hexsalt:0FDBC6E7530A320B98ABE5ADA8879CE4 -kdfopt iter:30000 PBKDF2
29:6C:80:F9:CC:E5:BE:2F:E6:44:F4:6A:E3:68:DF:38:4C:4E:B3:3A:10:73:FE:05:43:B9:E5:D9:CB:04:F8:D4

对应原始数据:
IMEI        ITERATION    SIMLOCK1_SALT            SIMLOCK1_HCK                                SIMLOCK_CONTROL_KEY
xxxxxxxxxxxxxxxx    30000    0FDBC6E7530A320B98ABE5ADA8879CE4    296C80F9CCE5BE2FE644F46AE368DF384C4EB33A1073FE0543B9E5D9CB04F8D4    3199265327188065

补充:
PEM 与 DER 格式

PEM 与 DER是用于存储、传输密钥和证书的标准格式,两者紧密关联,可以互相转换
DER:Distinguished Encoding Rules,可分辩编码规则。DER格式文件后缀通常为 “.der” 和 “.cer”,后缀名并不会影响 DER 格式文件的解析。
PEM:Privacy-Enhanced Mail,隐私增强邮件。PEM格式文件后缀通常为".pem"、“.cer”、“.crt”、“.key”,后缀名并不会影响 PEM 格式文件的解析。

1. PEM 与 DER 关系:
ASN.1 ------(序列化)------ DER ------(Base64编码)------ PEM
对 ASN.1 序列化后,就会生成一个二进制串,这个就是 DER 格式,将二进制进行 Base64 编码,再加上 PEM 格式特有的头尾两行,就生成了 PEM 格式,如RSA私钥的PEM格式如下:
-----BEGIN RSA PRIVATE KEY-----
base64_decode(DER二进制)
-----END RSA PRIVATE KEY-----

2. PEM 与 DER 互相转换
2.1 PEM 转 DER格式
先将 PEM 文件里面首尾的 “----BEGIN xxx----” 和 “----END xxx----” 两行去掉,再将内容合并为一行(去掉换行符),最后将内容进行 Base64 解码,最后结果就是 DER 格式。

openssl 命令:
openssl rsa -in rsa_private.pem -outform DER -out rsa_private.der

2.2 DER 转 PEM 格式
先将 DER 二进制内容进行 Base64 编码,再按每行 64 个字节进行切分,最后在切分后的内容前后加上 “----BEGIN xxx----” 和 “----END xxx----”。

openssl 命令:
openssl rsa -inform DER -in rsa_private.der -outform PEM -out rsa_private2.pem

3. DER 和 PEM 文件内容解析
上面提到过,DER 是对 ASN.1 结构对象序列化的结果,将DER的内容解析出来就是 ASN.1 结构。

openssl rsa -inform pem -in rsa_private.pem -text -noout
openssl rsa -inform der -in rsa_private.der -text -noout

截图实例:

相关文章:

openssl 常用命令demo

RSA Private Key的结构&#xff08;ASN.1&#xff09; RSAPrivateKey :: SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- …...

【Linux】Linux基本指令2

目录 1.man指令&#xff08;重要&#xff09;&#xff1a; 2.echo指令 3.cp指令&#xff08;重要&#xff09;&#xff1a; 4.mv指令 5.cat指令/echo指令重定向 6.more指令 7.less指令&#xff08;重要&#xff09; 8.head指令 9.tail指令 我们接着上一篇&#xff1a;h…...

springboot+vue+mybatis博物馆售票系统+PPT+论文+讲解+售后

如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统博物馆售票系统信息管理难度大&#xff0c;容错率低&#xff0c;…...

java—MyBatis框架

简介 什么是 MyBatis&#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&…...

如何使用Spring Cache优化后端接口?

Spring Cache是Spring框架提供的一种缓存抽象,它可以很方便地集成到应用程序中,用于提高接口的性能和响应速度。使用Spring Cache可以避免重复执行耗时的方法,并且还可以提供一个统一的缓存管理机制,简化缓存的配置和管理。 本文将详细介绍如何使用Spring Cache来优化接口,…...

大话C语言:第21篇 数组

1 数组概述 数组是若干个相同类型的变量在内存中有序存储的集合。 数组是 C 语言中的一种数据结构&#xff0c;用于存储一组具有相同数据类型的数据。 数组在内存中会开辟一块连续的空间 数组中的每个元素可以通过一个索引&#xff08;下标&#xff09;来访问&#xff0c;索…...

transfomer中attention为什么要除以根号d_k

简介 得到矩阵 Q, K, V之后就可以计算出 Self-Attention 的输出了&#xff0c;计算的公式如下: A t t e n t i o n ( Q , K , V ) S o f t m a x ( Q K T d k ) V Attention(Q,K,V)Softmax(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)Softmax(dk​ ​QKT​)V 好处 除以维…...

iperf3带宽压测工具使用

iperf3带宽压测工具使用 安装下载地址&#xff1a;[下载入口](https://iperf.fr/iperf-download.php)测试结果&#xff1a;时长测试&#xff08;压测使用&#xff09;:并行测试反向测试UDP 带宽测试 iPerf3 是用于主动测试 IP 网络上最大可用带宽的工具 安装 下载地址&#x…...

[数据集][目标检测]焊接处缺陷检测数据集VOC+YOLO格式3400张8类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3400 标注数量(xml文件个数)&#xff1a;3400 标注数量(txt文件个数)&#xff1a;3400 标注…...

2024华为OD机试真题-剩余银饰的重量-C++(C卷D卷)

题目描述 有 N 块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。 每一回合,从中选出三块 最重的 银饰,然后一起熔掉。假设银饰的重量分别为 x 、y 和 z, 且 x <= y <= z。那么熔掉的可能结果如下: 如果x == y == z,那么三…...

糖果促销【百度之星】/思维

糖果促销 思维 大佬的解法&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; int main() {ll t;cin>>t;for(int i0;i<t;i){ll p,k;cin>>p>>k;if(k0) cout<<0<<endl;else{k-(k-1)/p;cout<<k<…...

【python学习】安装Anaconda后,如何进行环境管理(命令行操作及图形化操作Anaconda Navigator)及包管理

命令行的方式 首先&#xff0c;打开 Anaconda Powershell Prompt 环境查看 使用以下命令查看当前所有环境&#xff1a; conda env list目前只有一个 base环境&#xff0c;就是安装 anaconda的时候选择的。 光标在闪烁&#xff0c;目前已经进入 base 环境模式&#xff1a; …...

HTML大雪纷飞

目录 写在前面 HTML简介 完整代码 代码分析 运行结果 系列文章 写在后面 写在前面 小编又又又出现啦&#xff01;这次小编给大家带来大雪纷飞HTML版&#xff0c;不需要任何的环境&#xff0c;只要有一个浏览器&#xff0c;就可以随时随地下一场大雪哦&#xff01; HTM…...

问界新M7 Ultra仅售28.98万元起,上市即交付

5月31日&#xff0c;问界新M7 Ultra正式上市。发布会上&#xff0c;鸿蒙智行旗下多款产品交出最新答卷——问界新M5上市1个月大定突破2万台&#xff1b;智界S7位列30万纯电轿车4月交付量NO.3&#xff1b;问界M9上市5个月大定突破9万台。其中&#xff0c;作为中国高端豪华SUV市场…...

【Java数据结构】详解LinkedList与链表(四)

&#x1f512;文章目录&#xff1a; 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2.什么是LinkedList 3.LinkedList的使用 3.1LinkedList的构造方法 3.2LinkedList的其他常用方法介绍 addAll方法 subList方法 LinkedList的常用方法总使…...

ssm汉服文化平台网站

博主介绍&#xff1a;✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR

如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR 在导入窗口左上角有个选项&#xff1a; 导入后弹出 把这个去掉就可以了...

elasticdump和ESM

逐个执行如下命令&#xff1b; 1.拷贝analyzer如分词&#xff08;需要分词器&#xff0c;可能不成功&#xff0c;不影响复制&#xff09; ./elasticdump --inputhttp://[来源IP地址]:9200/[来源索引] --outputhttp://[目标IP地址]:9200/[目标索引] --typeanalyzer 2.拷贝映射…...

Java扩展机制:SPI与Spring.factories详解

一、SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 整体机制图如下: Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不…...

iPhone 语言编程:深入探索与无限可能

iPhone 语言编程&#xff1a;深入探索与无限可能 在数字化时代的浪潮中&#xff0c;iPhone 作为一款全球领先的智能手机&#xff0c;其语言编程的奥秘一直吸引着众多开发者与爱好者的目光。iPhone 的语言编程不仅关乎技术实现&#xff0c;更涉及到用户体验、创新应用等多个层面…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...