Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216264
  • 博文数量: 82
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 18
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-28 13:26
个人简介

当做事的时候,也是在学习的时候!

文章分类

全部博文(82)

文章存档

2016年(9)

2015年(55)

2014年(7)

2013年(10)

2012年(1)

我的朋友

分类: 网络与安全

2015-08-11 14:37:36

原文地址:OpenSSL命令---genpkey 作者:kongkong011

http://blog.csdn.net/as3luyuan123/article/details/14498339
[html] view plaincopy
  1. openssl genpkey -paramfile dhp.pem -out dhkey.pem   


用途:

用于产生各种密钥(RSADSADHEC等)的私钥值。

用法:

  1. openssl  genpkey [-out filename] [-outform PEM | DER] [-pass arg] [-cipher] [-engine id]   
  2. [-paramfile file] [-algorithm alg] [-pkeyopt opt:value] [-genparam] [-text]   

选项说明:

-out filename:指定输出文件。如果没有设置,则为标准输出。

-outform PEM | DER:指定输出格式,一般为PEMDER

-pass arg:输出文件口令保护存放方式。

 -cipher:私钥加密的加密算法。

-engine id:硬件引擎。

-paramfile file:产生私钥的参数值。一些公钥算法可以根据这些参数产生一个私钥。如果想这样产生密钥,则必须设置此选项。参数值来决定是否使用公钥算法。如果用了此选项,该选项必须在-pkeyopt之前。

-algorithm alg:公钥算法,可以用RSADSA以及DH。如果用了此选项,该选项必须在-pkeyopt之前。

-pkeyopt opt:value:设置公钥算法的选项值。

-genparam:产生一系列参数来代替私钥值。如果用了此选项,该选项必须在-algorithm alg -pkeyopt 以及-paramfile file之前。

-text:打印消息值。

密钥产生选项值:

这些选项支持每个算法,对个算法可以改变。OpenSSL中的实现如下:

RSA密钥产生选项:

B:产生密钥位数。如果没有指定,则默认为1024

BRSA公钥指数值。它可以是一个大地小数或者是以B<0x>开头的十六进制数。默认为65537

DSA参数产生选项:

B:产生DSA密钥参数的位数,如果没有指定,则默认为1024

DH参数产生选项:

B:素数参数B

的字节数。

B:产生B的值。

EC参数产生选项:

B:用的EC椭圆曲线。

GOST2001 密钥和参数产生选项:

默认的是不支持Gost 2001.为了支持这个算法,必须在OpenSSL配置文件中加载ccgost硬件引擎。可以看看在engines/ccgost 目录下的README.gost文件介绍。

GOST R 34.10算法的参数文件是可选的。参数可以在密钥产生中被指定。

B:可以根据RFC4357来指定GOST R 34.10-2001的参数值。参数值可以用简短的名字、项目短名字或数字型的OID来指定。下面是所支持的参数值:

  1. paramset   OID               Usage  
  2.   A          1.2.643.2.2.35.1  Signature  
  3.   B          1.2.643.2.2.35.2  Signature  
  4.   C          1.2.643.2.2.35.3  Signature  
  5.   XA         1.2.643.2.2.36.0  Key exchange  
  6.   XB         1.2.643.2.2.36.1  Key exchange  
  7.   test       1.2.643.2.2.35.0  Test purposes  

注意:

使用genpkey项目是受到鼓舞的,是因为可以使用附加的算法选项和提供的硬件引擎算法可以被使用。

实例:

用常规参数值产生一个RSA私钥值。

  1. openssl genpkey -algorithm RSA -out key.pem   


AES算法对输出的私钥文件进行加密,密钥为“hello”。

[html] view plaincopy
  1. openssl genpkey -algorithm RSA -out key.pem -aes-128-cbc -pass pass:hello  


用公共的指数3来产生一个2048位的RSA密钥值。

[html] view plaincopy
  1. openssl genpkey -algorithm RSA -out key.pem -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:3  

产生一个1024位的DSA密钥参数值。

[html] view plaincopy
  1. openssl genpkey -genparam -algorithm DSA -out dsap.pem -pkeyopt dsa_paramgen_bits:1024  


根据参数值来产生DSA密钥值。

[html] view plaincopy
  1. openssl genpkey -paramfile dsap.pem -out dsakey.pem   


产生1024位的DH参数值。

[html] view plaincopy
  1. openssl genpkey -genparam -algorithm DH -out dhp.pem -pkeyopt dh_paramgen_prime_len:1024  

根据参数值产生DH密钥值。

[html] view plaincopy
  1. openssl genpkey -paramfile dhp.pem -out dhkey.pem   
阅读(728) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~