用途:

pkcs8格式的私钥转换工具。它处理在PKCS#8格式中的私钥文件。它可以用多样的PKCS#5 (v1.5 and v2.0)和PKCS#12算法来处理没有解密的PKCS#8 PrivateKeyInfo格式和EncryptedPrivateKeyInfo格式。

用法:

openssl pkcs8 [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-passin arg] [-out filename]

[-passout arg] [-topk8] [-noiter] [-nocrypt] [-nooct] [-embed] [-nsdb] [-v2 alg] [-v1 alg] [-engine id]

选项说明:

-inform PEM|DER::输入文件格式,DER或者PEM格式。DER格式采用ASN1的DER标准格式。一般用的多的都是PEM格式,就是base64编码格式。

-outform DER|PEM:输出文件格式,DER或者PEM格式。

-in filename:输入的密钥文件,默认为标准输入。如果密钥被加密,会提示输入一个密钥口令。

-passin arg:输入文件口令保护来源。

-out filename:输出文件,默认为标准输出。如果任何加密操作已经执行,会提示输入一个密钥值。输出的文件名字不能和输入的文件名一样。

-passout arg:输出文件口令保护来源。

-topk8:通常的是输入一个pkcs8文件和传统的格式私钥文件将会被写出。设置了此选项后,位置转换过来:输入一个传统格式的私钥文件,输出一个PKCS#8格式的文件。

-noiter:MAC保护计算次数为1。

-nocrypt:PKCS#8密钥产生或输入一般用一个适当地密钥来加密PKCS#8 EncryptedPrivateKeyInfo结构。设置了此选项后,一个不加密的PrivateKeyInfo结构将会被输出。这个选项一直不加密私钥文件,在绝对必要的时候才能够使用。某些软件例如一些JAVA代码签名软件使用不加密的私钥文件。

-nooct:这个选项产生的RSA私钥文件是一个坏的格式,一些软件将会使用。特别的是,私钥文件必须附上一个八位组字符串,但是一些软件仅仅包含本身的结构体没有使八位组字符串所环绕。不采用八位组表示私钥。

-embed:这个选项产生的RSA私钥文件是一个坏的格式。在私钥结构体中采用嵌入式DSA参数格式。在这个表单中,八位组字符串包含了ASN1 SEQUENCE中的两种结构:一个SEQUENCE包含了密钥参数,一个ASN1 INTEGER包含私钥值。

-nsdb:这个选项产生的RSA私钥文件是一个坏的格式并兼容了Netscape私钥文件数据库。采用NetscapeDB的DSA格式。

-v2 alg:采用PKCS#5 v2.0,并指定加密算法,默认的是PKCS#8私钥文件被叫做B(该算法用56字节的DES加密但是在PKCS#5 v1.5中有更加强壮的加密算法)的加密算法用口令进行加密。用B选项,PKCS#5 v2.0相关的算法将会被使用,可以是des3(168字节)和rc2(128字节),推荐des3。

-v1 alg:采用PKCS#5 v1.5或pkcs12,并指定加密算法。可采用的算法见下面。

-engine id:指定硬件引擎。

注意:

加密了的PEM编码PKCS#8文件表单用下面的头部和尾部:

-----BEGIN ENCRYPTED PRIVATE KEY-----

-----END ENCRYPTED PRIVATE KEY-----

未加密的表单用:

-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----

跟传统的SSLeay算法相比,用PKCS#5 v2.0系列的算法加密私钥,有更高的安全性以及迭代次数。于是附加的安全性是经过深思熟虑的。

默认的加密算法仅仅是56字节的,是因为它是PKCS#8所支持的最好的方法。

有一些软件使用PKCS#12基于密钥的加密算法来加密PKCS#8格式的私钥:它们会自动的处理但是没有选项来操作。

在PKCS#8格式中,有可能的是输出DER编码格式的经过加密的私钥文件,是因为加密的详细说明包含在DER等级中,相反的是传统的格式包含在PEM邓丽中。

PKCS#5 v1.5和PKCS#12算法:

各种各样的算法可以被选项-v1所使用。包含PKCS#5 v1.5和PKCS#12算法。详细描述如下:

B:这两个算法包含在PKCS#5 v1.5中。它们仅仅提供56字节的保护,加密算法用DES。

B:它们在传统的PKCS#5 v1.5中没有被提到,但是它们用同样地密钥引出算法,被一些软件所支持。在PKCS#5 v2.0中所提到。它们使用64字节的RC2以及56字节的DES。

B:它们是PKCS#12基于密钥的加密算法,它们允许使用高强度的加密算法,例如3des或128位的RC2。

实例:

用3des算法将传统的私钥文件转换为PKCS#5 v2.0:

openssl pkcs8 -in key.pem -topk8 -v2 des3 -out enckey.pem

用PKCS#5 1.5兼容的DES算法将私钥文件转换为pkcs8文件:

openssl pkcs8 -in ocspserverkey.pem -topk8 -out ocspkcs8key.pem

用PKCS#12兼容的3DES算法将私钥文件转换为pkcs8文件:

openssl pkcs8 -in key.pem -topk8 -out enckey.pem -v1 PBE-SHA1-3DES

读取一个DER格式加密了的PKCS#8格式的私钥:

openssl pkcs8 -inform DER -nocrypt -in key.der -out key.pem

转换一个PKCS#8格式的私钥到传统的私钥:

openssl pkcs8 -in pk8.pem -out key.pem

pkcs8中的私钥以明文存放:

openssl pkcs8 -in ocspserverkey.pem -topk8 -nocrypt -out ocspkcs8key.pem

标准:

PKCS#5 v2.0的测试向量的实现是以通告的形式用高强度的迭代次数算法3DES、DES和RC2来加密的。很多人要确认能够解密产生的私钥。

PKCS#8格式的DSA私钥文件没有备注文件中的:在PKCS#11 v2.01中的11.9节被隐藏了的。OpenSSL的默认DSA PKCS#8私钥格式隐藏在这个标准中。

BUGs:

必须有一个选项打印使用的加密算法的其他详细细节,例如迭代次数。

PKCS#8用3DES和PKCS#5 v2.0必须是默认的私钥文件:目前为了命令的兼容性。

我的微信:graent_hu

欢迎扫码加我的微信好友,有什么问题我们可以一起探讨,有什么需要也随时欢迎发消息给我~

转载请注明出处:

本文链接:https://www.wlyc.cn/post-184.html

php openssl 处理pkcs8,【转载】OpenSSL命令---pkcs8相关推荐

  1. pkcs1转pkcs8 php,openssl RSA密钥格式PKCS1和PKCS8相互转换

    openssl 生成pkcs1格式的私钥,密钥长度2048位, (PKCS1) openssl genrsa -out private.pkcs1.pem 2048 PKCS1私钥转换为PKCS8 o ...

  2. 【Android 安全】DEX 加密 ( 代理 Application 开发 | 项目中配置 OpenSSL 开源库 | 使用 OpenSSL 开源库解密 dex 文件 )

    文章目录 一.项目中配置 OpenSSL 开源库 二.OpenSSL 开源库解密参考代码 三.解密 dex 文件的 Java 代码 四.解密 dex 文件的 Jni 代码 参考博客 : [Androi ...

  3. linux 卸载 openssl,请教Linux下Openssl安装的问题。

    我这里版本的操作系统中默认已经集成了openssl组件. # rpm -qa|grep openssl openssl-32bit-0.9.8a-18.26 openssl-devel-0.9.8a- ...

  4. linux rpm安装openssl,[CentOS]离线安装OpenSSL

    环境 安装OpenSSL 安装openssl时更建议将openssl.openssl-devel一块儿安装,否则可能出现openssl不可用. OpenSSL 依赖包清单参考如下(镜像站下载) key ...

  5. python2 openssl安装_CentOS下openssl和python编译安装

    一.前言 本文主要纪录CentOS等类型系统下openssl和python软件编译安装的操作过程和一些注意事项,以供后续回顾使用. 二.操作指导 2.1 环境说明 软件 版本 CentOS 6.9 x ...

  6. PHP rsa私钥pkcs8加密,Openssl rsa私钥的PKCS#1和PKCS#8格式以及加密和转化

    这里主要介绍: 私钥的PKCS#1格式,及PKCS#8格式 格式PKCS#1和PKCS#8之间的互相转化 私钥的加密,解密 PKCS#1 -> PKCS#8 生成PKCS#1私钥 $ opens ...

  7. openssl 加密解密 指令_openssl命令aes加密和解密

    openssl命令aes加密和解密 日期:2014-11-12 10:41:25 最后更新日期:2017-07-06 10:00:10 [技术] man openssl查看openssl的功能: [c ...

  8. pkcs1转pkcs8 php,pkcs1与pkcs8格式RSA私钥互相转换

    注:亲验可用 转载自:https://www.jianshu.com/p/08e41304edab 1.PKCS1私钥生成 openssl genrsa -out private.pem 1024 p ...

  9. 《openssl编程》之openssl简介

    www.openss.org 去查看在线帮助文档,或者用linux下的命令man2html将帮助文档装换为html格式.用户也可以访问openssl.cn论坛来学习openssl.

  10. 修复openssl漏洞,升级openssl

    1.查看源版本 [root@zj ~]# openssl version -a OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 2.下载openssl-1.0.1g.tar ...

最新文章

  1. python界面翻译-我用40行python代码写一个桌面翻译器,很nice
  2. jquery实战-定宽(二)
  3. 很慌!一次惊心动魄的服务器误删文件的恢复过程
  4. 基于 HTML5 网络拓扑图的快速开发之入门篇(二)
  5. 类级别的分装 ---四种访问级别
  6. android上拉刷新下拉加载
  7. B00015 C++实现的图类
  8. Python List pop()方法
  9. java echarts 饼图_饼图 | ECharts 数据可视化实验室
  10. Apollo添加新的can通信接口的GPS设备
  11. 手机数控模拟器安卓版_CNC模拟器安卓中文版下载
  12. ECShop 批量打印快递单
  13. 崔希凡JavaWeb笔记day19-day21(2016年10月4日17:35:51)
  14. 利用FDTD软件仿真拓扑光子(二)-光子晶体结构分析
  15. 输出递归因数分解php,[学习笔记] Miller-Rabin质数测试 Pollard-Rho质因数分解
  16. R语言学习笔记:主成分分析及因子分析
  17. vs修改程序图标、任务栏图标
  18. 软件测试之测试用例颗粒度问题
  19. css文字超出宽度自动换行
  20. 8. 监督学习的统计理论

热门文章

  1. 解决tomcat内存溢出问题
  2. Pwn入门之ELF文件
  3. atomd525服务器性能,Atom D525性能几何?
  4. [乐意黎原创]联想G470老笔记本升级改造
  5. verilog代码编写工具
  6. Markdown MarkdownPad2 win10上显示awesomium
  7. Face3D学习笔记(6)3DMM示例源码解析【下】从二维图片的特征点重建三维模型
  8. Hamcrest 总结
  9. 鸟哥Linux 私房菜
  10. Java 实现 植物大战僵尸 小游戏【附源码】