openssl之genras命令简单入门

今天熟悉一下openssl genras这个命令

命令说明

首先查看openssl genrsa 命令后面能够添加的参数:

usage: genrsa [args] [numbits]
 -des            encrypt the generated key with DES in cbc mode
 -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)
 -idea           encrypt the generated key with IDEA in cbc mode
 -seed
                 encrypt PEM output with cbc seed
 -aes128, -aes192, -aes256
                 encrypt PEM output with cbc aes
 -camellia128, -camellia192, -camellia256
                 encrypt PEM output with cbc camellia
 -out file       output the key to 'file
 -passout arg    output file pass phrase source
 -f4             use F4 (0x10001) for the E value
 -3              use 3 for the E value
 -engine e       use engine e, possibly a hardware device.
 -rand file:file:...
                 load the file (or the files in the directory) into
                 the random number generator

可以看到,genrsa提供了很多加密算法生成RSA私钥。

参数详情

des

des 是使用cbc的模式的des数据加密方法进行私钥生成。在控制台输入openssl genrsa -des,界面会显示如下信息:

Generating RSA private key, 2048 bit long modulus
........+++
..................+++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-CBC,8834DB366AA115FC

EeqfrtoiT+BtH0dg6/lY/RbR5ZYSK79H4HVaTyHYbTnDp20Np9bbFlbRzHp83ZTo
V0oMwPEElZ4CZNUqg7rskpXD008+4QfnxkYKW/Vk6IeJlUIlVimTwktF1Tm2eptr
JdIxWJC4/WNUw1wfP4Mx1m7V3NWgnghcqa9/YW/AErUN7E2w8lDQ2Qjp0t3f2zPD
bo/y7A8D30r2lHH39mtehg2L0whpZ5UbUGM1HihzuuF6jGDzf4F6qr/UcyvH/UuL
iqahfkAF1tWPkQSCdf7dETpd0Lio21JkForvA0M1RSbzNlaFeiP41rG8HH8loK8J
BQ4tj6MMLOjkdDwpN7THJt9iJdAcbPkrrGx/jR1JS/N9/O9paBHWOquSaBp3su/B
FK9HXgk1Dj9M7ggYwLsAeyzJVi6EccU5oY7MtW6N8r/dbjFbl5uidk4pP8QsTXV4
p6Rjn873Y04/xwIVKNt5KYCPGwq33OK1QPBOPrU4leRuSqcG9x9FP++1Qd5x368x
ZF7sEv47SiKLzmxDG2OUIuDqvyNe0Jc3JdsquH9xv4ab/7EKmYJX9uLG6Q9LbDUL
27ozMwdxMT10g9bptw7ScllTmaMwrph55bbFe4Wfd5p2jIH7oUcDgSeLI5BdxyDy
DxdlLtDfeTOcYnrh8EAq7Ngex2hL95xPvUPfXeOsOst3epbv22KPCOYzUBRN7IjE
5cFPNOqeNsg8LZLZ7uPz0C3J6GR9EQoaDmLoGjnT0RBmr3wfmFzDfbR3WFySGE1F
OFGsehnHOKVqpazfVMZhIOOdY4GldzzRzwK5vEQUQ2i8JZkPiAvegDk6cRI9TGxA
nneIJP0DBU0PHTU1VXm9XOXRfchbZtRBKRjpD4Z91TqWoutqu4zStwIv87T3CKee
UcMMXFzSjr6XxSXHCZv5+1RI+FwmdId1wNbeowarHAhKY0dKpJa//O4a5P50uqT8
+42TTfiClesbwP0FXPZ4qL0rZ72kj1iW1N0IUjtiVdqI9s9x6nm2v2tZTDjsBwSZ
oqD2Eqi2eFX2Yt8VfD1+n9EvqO91bFclm0EskyHSgM/aHorDyce4hC+Qk6iMOpXv
S7Y9WtvDwv1SOaOjOTZDqj2LU3ic8AAP6X/qsq+ly2Tn7emYDTVZREqYh1oScshM
O6/2M1DX+SuD4c644GxSvR8anUn2tczJOdTdZMg+c8MwEFKt6bihOFw5494fNP2s
SLEvJT53t7Mc0eygwNx3J6bl2dgeZ9rv1ve0KLDiZnHwfa46rYNaJ4c19Q9UErm2
6TCYGuw3qaVHdNpT6NoJlChPjkP2UkIN0VXvukbO3hkFcEPb2TZEF7WWxrTunX5Q
HWEpjqyHrN//mh027BQdZc0VE2wyZmyIfLINA1irl3cTdl1WxIP78E+MNRLl1pXx
C0oDlgZnwwjvCb8BvflsSighQKqh3ze3WFKtUJEjPb/todxcIyHTkdrgv0a+dlT+
9498Fk08nlupMZvXxSbmAmoFReL3f2GXH6s5TP9WQZWN5PTaYuxdxluEOU4dcFk3
QJ7lv4RW4WM+lC7MWLK5N8FCo3SPiE1ickhwQKe46

整个过程中需要输入两次密码。从提示中可以看到。私钥的长度是2048bit。并且生成该私钥·算法的指数E为65537。该指数E我们可以通过使用f4或者 3进行修改

f4

该命令的作用是用F4(0x10001)来作为指数E的值。在控制台输入openssl genrsa -des -f4,会显示出如下内容:

Generating RSA private key, 2048 bit long modulus
...........................................................................................................+++
........................+++
e is 65537 (0x10001)

在这可以看出默认使用的指数E就是F4(0x10001)

3

该命令的作用是使用3(0x3)来作为指数E的值。在控制台输入openssl genrsa -des -3,会显示出如下内容:

Generating RSA private key, 2048 bit long modulus
..................+++
...................................................................+++
e is 3 (0x3)

des3

该命令的作用是使用ede-cbc模式的des算法进行私钥生成。在控制台输入openssl genrsa -des3,在生成的私钥信息中可以看到这样的内容:DEK-Info: DES-EDE3-CBC,66F1CA186EC2B43E

idea

该命令的作用是使用cbc模式的idea算法进行私钥生成,在控制台输入openssl genrsa -idea ,在生成的私钥信息中可以看到这样的内容:DEK-Info: IDEA-CBC,3A9481256364780A

seed

该命令的作用是使用seed-cbc生成私钥,在控制台输入openssl genrsa -seed,在生成的私钥信息中可以看到这样的内容:DEK-Info: SEED-CBC,73D3DF4D865BF80BB68811419D7866BB

aes128

该命令的作用是使用aes-128-cbc生成私钥,在控制台输入openssl genrsa -aes128,在生成的私钥信息中可以看到这样的内容:DEK-Info: AES-128-CBC,B739B481AD7F03C67C3DFE8B1C492CC4

aes192

该命令的作用是使用aes-192-cbc生成私钥,在控制台输入openssl genrsa -aes192,在生成的私钥信息中可以看到这样的内容:DEK-Info: AES-192-CBC,F81FC1EA6A5314754953F446167856E4

aes256

该命令的作用是使用aes-256-cbc生成私钥,在控制台输入openssl genrsa -aes256,在生成的私钥信息中可以看到这样的内容:DEK-Info: AES-256-CBC,06B041202E250AED89C174A84A3A6668

camellia128

该命令的作用是使用camellia-128-cbc生成私钥,在控制台输入openssl genrsa -camellia128,在生成的私钥信息中可以看到这样的内容:DEK-Info: CAMELLIA-128-CBC,C429912EA3C7D114D2BC533C08B18C9D

camellia192

该命令的作用是使用camellia-192-cbc生成私钥,在控制台输入openssl genrsa -camellia192,在生成的私钥信息中可以看到这样的内容:DEK-Info: CAMELLIA-192-CBC,9718AB3664DCA949FAF662C327594B7A

camellia256

该命令的作用是使用camellia-256-cbc生成私钥,在控制台输入openssl genrsa -camellia256,在生成的私钥信息中可以看到这样的内容:DEK-Info: CAMELLIA-256-CBC,ECC9B9BABE464132237BEA943AFD71B9

out

该命令的作用是将生成的私钥,写入到文件中,在控制台中输入openssl genrsa -out huang.key,在我的主文件夹下会出现一个huang.key的文件,打开之后的内容:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAyhFfNk1EmMYrJDXdXuAjmKGnxozxokW9O/UZwcd6g2LRz2ux
4LbuqDzkrH0E2gYTSjFRiRb8fknbUGtqttCfkAyXJcInlnxrWQwohXtdYo39pd24
Zyk1cW+lb+I6NRdk3MrOW1e+E9mrLVWiGhyN70J0OmXJ//P4SFjOPXpR9Q82i6Kq
8UCzlzaOvi4Au8ZYpLBNUz/xIsneo1pfUBgyCsMQm1YFBTnel+n40tV0udyXUeeR
qjVgJkIQ3KeS9VGX/cyZttHC0zfPrp7le1f39tC54ylz20K+D4XowRfeS9TzQZfo
wgiP52A3EBkNHfdpp6GWpjmATXcNYrzQde/oDQIDAQABAoIBADPQco61D4LxRby6
RzJ93QLVaPUjzQ4kPdrzBZDH+uVX4J8EaY9KuTXQr35/bFAPwMCElvjFOSeU/rTH
ZozMQC4q3FMlTwtqighCct2Pfam46TKwAQoK6hZVX6Gp6+0TO5zWMEYB4M6sQRWV
4MQ7UDXq32zeDwcf4ymCBBiFliB1OmrU9sIrNPOSKk4cZk7e/FhQcFqWHsy5sxbP
pO2EYw9Re09Q7alXYu1Yuf4VOwoG5TapiYd5QTQ9pf69/d22UYKB+EGv5n+P5VHH
0kZ7egdtbJWmKquyuXfM77AEaDo1Q3FVREqr6Yvk5q7PgtihKDxCBDcLIklVFNuq
nGNpsA0CgYEA7rr0UY4yAW3x9cTa9UGMBhTI8OUAqsiBVJxptSelvKKyrurdMCG9
3dtRK/5cKb5WzGnAT9tF8bALgGxcJyAyUivEtzM7WFz5r07vJiQJffrXa+NwbMXb
BYL/2Lv+sN3nQcvXDIxZ821C+QJfpcRKp4/BznWyccVazXhcGUth0nMCgYEA2K93
UQl0QZqSyxaP5YLkKH9ousGor2fZTnippljeq0bghf521hpqdweFU5Lf62c5k0+j
g6mxSJF/qp6DcOUCCUEjGHYWlpYiwOj0OK/c7tembxXI5WtkgQuI8xOs6Kfeljp/
zamfIXBAVOxvmjKhlCxIhVA1Q0Ne9Fxk0+V4O38CgYBb3HCa2T6Ask/CpGckrH42
8NSJbXUeQl0Rs8YxQPpTZb+f8xv9o14t+nB3nz7TiTxZF/A6SkPVxkoGtquXGpqC
Z/kgDYSucchaHuODJ6bHZThzeWcPU+r9afUM7voIELsl5Evxtif+tXJp4vHvFWMs
qvKGgV+Sy8AvBDtcOFeB5QKBgDsj0N32RZuuM4hodQfALMN82rm2J3MQVfgb6Lm1
Ibj/lEIeDJMtDIfGLrZ7rM/UEZvKLae+xds3ku+faeKDLoYWGB0SBeI9weiC7D0Y
iqVJiGxjNryfDgRGgK9PXG73ekHoX39jX0JCH9zN1zvvu7f0SirQlGjyV1U8bmyD
AcjDAoGBAIvjH8ZzGnef4HJGW6bgVln2ubwIZB5wQUrNWjuwOC0mUtWx87JSi+1g
aHbiFr+hlMLZnpLfezeKelm625bxHMZrqGTiRbsAtqde93DTr9b6bF/q2Qesnz4+
S+KWTTenB+NfR0EWIo99cIgydmre21ynYKmpHXQ1W6vtwtiv4XB7
-----END RSA PRIVATE KEY-----

passout

该命令的作用是使用输入的密码对输出的文件进行密码保护。在控制台输入openssl genrsa -out huang.key -passout pass:lei ,当点击生成的文件时无法打开。需要使用密码才能打开 。

engine

该命令是使用引擎进行加密,这个引擎一般是一个硬件设备。

rand

该命令的作用是加载一个文件作为参数进行加密的随机数生成。