您好,登錄后才能下訂單哦!
一 DH算法(Gendh/Dhparam/Dh)
1 gendh
功能:用于生成DH參數。
用法:openssl gendh [-out file ] [-rand ] [-engine e ]
選項:
-out file 輸出結果到file指定的文件,如果不指定,結果顯示在屏幕屏幕上
-2 將2作為生成值,此為默認值
-5 將5作為生成值
-rand 指定隨機數文件
-engine e 采用Engine生成;
例子1:將DH參數打印到屏幕
[root@localhost opensscommand]# openssl gendh
Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
..........................++*++*++*++*++*++*
-----BEGIN DH PARAMETERS-----
MEYCQQD1x7k6EepYbX+TSDTsxGCA2rNxTgsFHg9nLXThBjU5hogTMfPcOGaZxJPL
W+gPiWmvCDmDa5T26Uy3lURwzrFLAgEC
-----END DH PARAMETERS-----
例子2:將DH參數打印到文件CA_dh.pem下載
[root@localhost opensscommand]# openssl gendh -5 -out CA_dh.pem 1024
Generating DH parameters, 1024 bit long safe prime, generator 5
This is going to take a long time
..........................
[root@localhost opensscommand]# cat CA_dh.pem
-----BEGIN DH PARAMETERS-----
MIGHAoGBAOOBKbr4HYu9SUHVeWkIypXKdMo4NpgNtERK6tm56CaZ1PzRQhHx/0h8
5I5qK8V40R+xmGmXcEM6mg/CEkdcMN64Q9H22aakXqhiGDVXXjbFm/i+jXmD8L98
Js1+eh6MSuebpdDoHy6T3QVa77nVvwx03+JrI0shjUc9XLH2TyMfAgEF
-----END DH PARAMETERS-----
2 dhparam和dh
功能:dhparam為dh參數操作和生成工具,dh命令與dhparam用法大致一致,下面只給出了dhparam的說明。
用法:openssl dhparam [-inform DER|PEM] [-outform DER|PEM] [-in filename] [-out filename] [-dsaparam] [-noout] [-check] [-text] [-C] [-2] [-5] [-rand file(s)] [-engine id] [numbits]
選項:
-inform DER|PEM 輸入文件格式,DER或者PEM格式。
-outform DER|PEM 輸出文件格式,DER或者PEM格式。
-in filename 讀取DH參數的文件,默認為標準輸入。
-out filename dh參數輸出文件,默認為標準輸出。
-dsaparam 生成DSA參數,并轉換為DH格式。
-noout 不輸出信息。
-text 打印信息。
-check 檢查dh參數。
-C 以C語言風格打印信息。
-2,-5 指定2或5為發生器,默認為2,如果指定這些項,輸入DH參數文件將被忽略,自動生成DH參數。
-rand files 指定隨機數種子文件。
-engine id 指定硬件引擎。
-numbits 指定素數bit數,默認為512。
例子1:將DH參數輸出到文件dhparam.pem
[root@localhost opensscommand]# openssl dhparam -out dhparam.pem -text 512
Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
...............................
[root@localhost opensscommand]# cat dhparam.pem
PKCS#3 DH Parameters: (512 bit)
prime:
00:8b:fa:d6:58:ab:93:69:ab:61:23:87:e4:7e:4e:
26:8e:9b:c4:d4:03:12:56:22:ee:e7:ea:b8:e2:7a:
d2:04:f6:f4:4f:d5:3e:11:70:63:8e:ec:d1:85:40:
95:79:52:c5:7b:5f:06:46:19:b2:b0:35:e3:40:97:
a0:de:c6:cf:d3
generator: 2 (0x2)
-----BEGIN DH PARAMETERS-----
MEYCQQCL+tZYq5Npq2Ejh+R+TiaOm8TUAxJWIu7n6rjietIE9vRP1T4RcGOO7NGF
QJV5UsV7XwZGGbKwNeNAl6Dexs/TAgEC
-----END DH PARAMETERS-----
例子2:檢查生成的DH參數下載
[root@localhost opensscommand]# openssl dhparam -in dhparam.pem -text -check
PKCS#3 DH Parameters: (512 bit)
prime:
00:8b:fa:d6:58:ab:93:69:ab:61:23:87:e4:7e:4e:
26:8e:9b:c4:d4:03:12:56:22:ee:e7:ea:b8:e2:7a:
d2:04:f6:f4:4f:d5:3e:11:70:63:8e:ec:d1:85:40:
95:79:52:c5:7b:5f:06:46:19:b2:b0:35:e3:40:97:
a0:de:c6:cf:d3
generator: 2 (0x2)
DH parameters appear to be ok.
-----BEGIN DH PARAMETERS-----
MEYCQQCL+tZYq5Npq2Ejh+R+TiaOm8TUAxJWIu7n6rjietIE9vRP1T4RcGOO7NGF
QJV5UsV7XwZGGbKwNeNAl6Dexs/TAgEC
-----END DH PARAMETERS-----
二 摘要算法(Dgst)
1 dgst
功能:用于數據摘要。
用法:openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1 ] [-c] [-d ] [-hex] [-binary] [-out filename] [-sign filename] [-passin arg] [-verify filename] [-prverify filename]
[-signature filename ] [file...]
選項:
-d 打印調試信息。
-sign privatekeyfile 用privatekeyfile中的私鑰簽名。
-verify publickeyfile 用publickeyfile中的公鑰驗證簽名。
-prverify privatekeyfile 用privatekeyfile中的私鑰驗證簽名。
-keyform PEM|ENGINE 密鑰格式,PEM格式或者采用Engine。
-hex 顯示ASCII編碼的十六進制結果,默認選項。
-binary 顯示二進制數據。
-engine e 采用引擎e來運算。
-md5 默認選項,用md5進行摘要。
-md4 用md4摘要。
-md2 用md2摘要。
-sha1 用sha1摘要。
-sha 用sha摘要。
-sha256 用-sha256摘要。
-sha512 用sha512摘要。
-mdc2 用mdc2摘要。
-ripemd160 用ripemd160摘要。
例子1:各種方式顯示摘要值下載
[root@localhost opensscommand]# openssl dgst -hex a.txt
MD5(a.txt)= 65cf359cb255f94f9649133d6200b8b9
[root@localhost opensscommand]# openssl dgst -binary a.txt
e?.U..=b腹
[root@localhost opensscommand]# openssl dgst -hex -c a.txt
MD5(a.txt)= 65:cf:35:9c:b2:55:f9:4f:96:49:13:3d:62:00:b8:b9
例子2:將文件a.txt用sha512摘要,并用prikey.pem中的私鑰簽名。
[root@localhost opensscommand]# openssl dgst -sign prikey.pem -sha512 -out CA_sigDgst.pem a.txt
Enter pass phrase for prikey.pem:
[root@localhost opensscommand]# cat CA_sigDgst.pem
5$.捻?ㄩL7.?頎.`%.5?T/x??Z?
.5??F?=?.p.g..?l??OS.?架I耵餉|io:&Q??'.on
nAv訌?L?0.媯.
三 RSA(Genrsa/Rsa/Rsautl)
1 Genrsa
功能:生成RSA密鑰
用法:Openssl >genrsa [-out filename] [-passout arg] [-des3] [-rand files] [-engine id] [-numbits]
選項:
-des/des3/idea/aes128/aes192/aes256 以des/des3/idea/aes128/aes192/aes256模式加密密鑰
-out file 輸出文件
-f4/3 指定E 為f4/3
-rand file 指定隨機數種子文件
-numbits 密鑰長度,默認為512
例子1: 生成秘鑰文件CA_rsa_key.pem,并要aes256模式加密秘鑰文件。
openssl genrsa -aes256 -out CA_rsa_key.pem -f4 1024
[root@localhost ~]# openssl genrsa -aes256 -out CA_rsa_key.pem -f4 1024
Generating RSA private key, 1024 bit long modulus
............++++++
.......................++++++
e is 65537 (0x10001)
Enter pass phrase for CA_rsa_key.pem:
Verifying - Enter pass phrase for CA_rsa_key.pem:
2 Rsa下載
功能:用于處理RSA密鑰、格式轉換和打印信息。
用法:openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-sgckey] [-des] [-des3]
[-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
選項:
-inform DER|PEM|NET 指定輸入的格式,NET格式是與老的Netscape服務以及微軟的IIS兼容的一種不×××全的格式。
-outform DER|PEM|NET 指定輸出格式。
-in filename 輸入文件名。
-passin arg 私鑰保護密鑰來源,比如:-passin file:pwd.txt。
-out filename 輸出的文件名。
-des|-des3|-idea 指定私鑰保護加密算法。
-text 打印密鑰信息。
-noout 不打印任何信息。
-modulus 打印密鑰模數。
-pubin 表明輸入文件為公鑰,默認的輸入文件是私鑰。
-pubout 表明輸出文件為公鑰。
-check 檢查RSA私鑰。
-engine id 指明硬件引擎。
例子1:生成明文私鑰文件key.pem
[root@localhost opensscommand]# openssl genrsa -out key.pem
Generating RSA private key, 1024 bit long modulus
.++++++
..............++++++
e is 65537 (0x10001)
例子2:轉換為DER編碼文件key.der
[root@localhost opensscommand]# openssl rsa -in key.pem -outform der -out key.der
writing RSA key
例子3:將明文私鑰文件轉換為密碼保護,輸出到enckey.pem
[root@localhost opensscommand]# openssl rsa -inform der -in key.der -des3 -out enckey.pem
writing RSA key
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
例子4:將公鑰寫入文件pubkey.pem
[root@localhost opensscommand]# openssl rsa -in key.pem -pubout -out pubkey.pem
writing RSA key
例子5:打印公鑰信息到屏幕:
[root@localhost opensscommand]# openssl rsa -pubin -in pubkey.pem -text -modulus
Public-Key: (1024 bit)
Modulus:
00:cd:93:d9:08:ca:97:2e:5a:91:3a:b8:33:7f:1f:
84:8e:ba:16:94:ac:97:ce:b6:f5:57:5d:96:d3:fd:
1f:2f:fb:32:6b:0e:cf:82:45:77:70:12:75:56:8c:
79:a2:62:fe:07:e0:6c:8c:01:3a:41:a4:49:49:29:
fa:51:1a:cc:b3:8c:f7:1f:17:c1:b3:46:09:13:ee:
f6:1d:bc:3c:45:88:ca:5b:43:d2:18:b5:de:b9:61:
ad:b5:d4:ca:d9:1b:02:1c:88:9f:aa:07:a8:e9:9c:
27:46:e7:88:8d:02:3d:cb:62:91:e4:43:46:60:ac:
87:66:29:8f:4e:36:85:cf:bd
Exponent: 65537 (0x10001)
Modulus=CD93D908CA972E5A913AB8337F1F848EBA1694AC97CEB6F5575D96D3FD1F2FFB326B0ECF824577701275568C79A262FE07E06C8C013A41A4494929FA511ACCB38CF71F17C1B3460913EEF61DBC3C4588CA5B43D218B5DEB961ADB5D4CAD91B021C889FAA07A8E99C2746E7888D023DCB6291E4434660AC8766298F4E3685CFBD
writing RSA key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNk9kIypcuWpE6uDN/H4SOuhaU
rJfOtvVXXZbT/R8v+zJrDs+CRXdwEnVWjHmiYv4H4GyMATpBpElJKfpRGsyzjPcf
F8GzRgkT7vYdvDxFiMpbQ9IYtd65Ya211MrZGwIciJ+qB6jpnCdG54iNAj3LYpHk
Q0ZgrIdmKY9ONoXPvQIDAQAB
-----END PUBLIC KEY-----
例子6:顯示私鑰信息
[root@localhost opensscommand]# openssl rsa -in enckey.pem
Enter pass phrase for enckey.pem:
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDNk9kIypcuWpE6uDN/H4SOuhaUrJfOtvVXXZbT/R8v+zJrDs+C
RXdwEnVWjHmiYv4H4GyMATpBpElJKfpRGsyzjPcfF8GzRgkT7vYdvDxFiMpbQ9IY
td65Ya211MrZGwIciJ+qB6jpnCdG54iNAj3LYpHkQ0ZgrIdmKY9ONoXPvQIDAQAB
AoGATsf45UiV9RqaCzGp8m6GoxenLa***JIqpSdldKnM+Ns/8A0F8rtiUR2Rv/An
cNaU2Tnk/yY9SAiIWTRwDALELN4OFhsWvAMOMDJ+vfCE133avWX9QLhSEpUCWLOr
zz0qrQ6k4yQ5YBPId8EVFuJZY2mRSqEfHlh5/muPJbp/POECQQD89zbYUnd54m4T
5Nw0tac9VOyTGnOiWqqBqUtw6p9ZgZ/mpD/kmghhl/O5kheaZwogUi5vPucwvf4g
eyOYzZkJAkEA0AseNVWy5VtDG6wGFJxmoh6CIPertMNG2tRmFqXMszOrVZXVDSXa
HMKE+jv52barX+dVf8aHi0RBPrrCf0CyFQJBAI5AnvDq/xDlii1Zx5NEi7VrqlXW
zCwCfFvJzgjDh7SXtknHF77/97KZ9o7mXquPQhyG2mHop627ScsONChbhbECQQCs
gWuNAgCS2betjFiGYqFfsANZXsSL4Jgx/4ifIt+3gBKDpvfALTDMRCcLbwvfkO5N
WX61sqLVwcTwBOAdsEF5AkEAt3fpT0ZWfdSlDKvcm6AI19c0W4G2erf9xuii0F+q
Omw/JD9diG+Z/QMVq5yoqgLKqmmzKmQRI/OYwgQONwY33A==
-----END RSA PRIVATE KEY-----
3 Rsatul
功能:rsautl為RSA工具,能夠使用RSA算法簽名,驗證身份,加密/解密數據。
用法:openssl rsautl [-in file] [-out file] [-inkey file] [-pubin] [-certin] [-sign] [-verify] [-encrypt] [-decrypt]
[-pkcs] [-ssl] [-raw] [-hexdump] [-engine e] [-passin arg]
選項:
-in filename 指定輸入文件名,缺省為標準輸入。
-out filename 指定輸入文件名,缺省為標準輸出。
-inkey file 輸入私鑰文件名。
-pubin 表明我們輸入的是一個公鑰文件,默認輸入為私鑰文件。
-certin 表明我們輸入的是一個證書文件。
-sign 給輸入的數據簽名。
-verify 對輸入的數據進行驗證。
-encrypt 用公鑰對輸入數據加密。
-decrypt 用私鑰對輸入數據解密。
-pkcs, -oaep, -ssl, -raw 指定填充方式,上述四個值分別代表:PKCS#1.5(默認值)、 PKCS#1OAEP、SSLv2以及不填充。
-hexdump 用十六進制輸出數據。
-engine e 指定硬件引擎。
-passin arg 指定私鑰保護口令的來源,比如:-passin file:pwd.txt。
例子1:生成RSA密鑰文件prikey.pem
[root@localhost opensscommand]# openssl genrsa -des3 -out prikey.pem
Generating RSA private key, 1024 bit long modulus
..........................++++++
...........++++++
e is 65537 (0x10001)
Enter pass phrase for prikey.pem:
Verifying - Enter pass phrase for prikey.pem:
例子2:分離出公鑰文件pubkey.pem下載
[root@localhost opensscommand]# openssl rsa -in prikey.pem -pubout -out pubkey.pem
Enter pass phrase for prikey.pem:
writing RSA key
例子3:對a.txt文件簽名,簽名輸出到屏幕
[root@localhost opensscommand]# openssl rsautl -sign -inkey prikey.pem -in a.txt -hexdump
Enter pass phrase for prikey.pem:
0000 - 0c 71 0b a2 d3 37 ee 96-15 b5 ae fe 78 66 06 84 .q...7......xf..
0010 - bb bb a6 15 5c 97 cd 3a-62 b3 ec 5a a2 10 e1 43 ....\..:b..Z...C
0020 - 45 8a 19 b0 d7 dd 42 3c-9d 6f d2 96 e4 22 99 89 E.....B<.o..."..
0030 - 5c 26 3f a8 e1 bb eb f8-1f 75 48 0d a4 20 b2 5e \&?......uH.. .^
0040 - fc 04 06 5d 9b 1b 6f 36-88 26 ab 05 fa 0f 91 c2 ...]..o6.&......
0050 - 2c e9 aa cd d7 e5 52 98-f3 d3 27 91 e9 a0 ed 25 ,.....R...'....%
0060 - 78 bc e4 a9 52 9c df 1f-c5 ff 6c 8f 88 8b e2 8d x...R.....l.....
0070 - cf 30 4e 0e 55 38 51 3a-ea 35 51 07 87 bf e1 d9 .0N.U8Q:.5Q.....
例子4:對a.txt文件簽名,簽名文件為sig.dat
[root@localhost opensscommand]# openssl rsautl -sign -inkey prikey.pem -in a.txt -out sig.dat
Enter pass phrase for prikey.pem:
例子5:驗證簽名
[root@localhost opensscommand]# openssl rsautl -verify -inkey prikey.pem -in sig.dat
Enter pass phrase for prikey.pem:
ttest
例子6:公鑰加密a.txt,機密后的文件為b.txt
[root@localhost opensscommand]# openssl rsautl -encrypt -pubin -inkey pubkey.pem -in a.txt -out b.txt
例子7:私鑰解密b.txt
[root@localhost opensscommand]# openssl rsautl -decrypt -inkey prikey.pem -in b.txt
Enter pass phrase for prikey.pem:
ttest
四 橢圓曲線算法(Ecparam/Ec)
1 ecparam下載
功能:橢圓曲線密鑰參數生成及操作。
用法:openssl ecparam [-inform DER|PEM] [-outform DER|PEM] [-in filename] [-out filename] [-noout] [-text] [-C]
[-check] [-name arg] [-list_curve] [-conv_form arg] [-param_enc arg] [-no_seed] [-rand file(s)] [-genkey] [-engine id]
選項:
-inform DER|PEM 輸入文件格式。
-outform DER|PEM 輸出文件格式。
-in filename 輸入文件。
-out filename 輸出文件。
-noout 不打印信息。
-text 打印信息。
-C 以C語言風格打印信息。
-check 檢查參數。
-name arg 采用短名字。
-list_curves 打印所有可用的短名字。
-conv_form arg 指定信息存放方式,可以是compressed、uncompressed或者hybrid,默認為compressed。
-param_enc arg 指定參數編碼方法,可以是named_curve和explicit,默認為named_curve。
-no_seed 如果-param_enc指定編碼方式為explicit,不采用隨機數種子。
-rand file(s) 指定隨機數種子。
-genkey 生成密鑰。
-engine id 指定硬件引擎。
例子1:打印所有可用的短名字
[root@localhost opensscommand]# openssl ecparam -list_curves
secp384r1 : NIST/SECG curve over a 384 bit prime field
secp521r1 : NIST/SECG curve over a 521 bit prime field
prime256v1: X9.62/SECG curve over a 256 bit prime field
例子2:生成橢圓曲線密鑰,打印到屏幕
[root@localhost opensscommand]# openssl ecparam -name secp384r1 -genkey -text
ASN1 OID: secp384r1
-----BEGIN EC PARAMETERS-----
BgUrgQQAIg==
-----END EC PARAMETERS-----
-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDDbMZ0LbFJsV04INQaDc5wJtXa83yCnu84BO/lDzeRi7l2Ce1xQu0qU
J4nktlZ1CDSgBwYFK4EEACKhZANiAARbG35i5AdcJ1ciCfbuH0VmTndhCFaL2AuN
wacjBxgExyc82U9efp6BmaWIBYwMIyZSkzfj2mZkKJvQXWfKPiKqXXJ37TeLIvgA
fMMCxFkiLkuJjL5m6an0d6JSDKGh6AE=
-----END EC PRIVATE KEY-----
例子3:生成橢圓曲線密鑰,輸出到secp384.pem
[root@localhost opensscommand]# openssl ecparam -name secp384r1 -out secp384.pem
例子4:更新生成密鑰
[root@localhost opensscommand]# openssl req -newkey ec:secp384.pem
Generating a 384 bit EC private key
writing new private key to 'privkey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。