?
十九.????
指令
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]
? ?
? ?
? ?
說明
:
? ?rsa
指令專門處理
RSA
密鑰
.
其實(shí)其用法和
dsa
的差不多
.
? ?
? ? OPTIONS
? ? -inform DER|PEM|NET
? ?
指定輸入的格式是
DEM
還是
DER
還是
NET.
注意
,
這里多了一種格式
,
就是
NET,DER
格式采用
ASN1
的
DER
標(biāo)準(zhǔn)格式。一般用的多的都是
PEM
格式,就是
base64
編碼格式
.
你去看看你做出來的那
些
.key, .crt
文件一般都是
PEM
格式的,第一行和最后一行指明內(nèi)容,中間就是經(jīng)過編碼的東西。
NET
格式在本章后面會(huì)詳細(xì)解釋
.
? ? -outform DER|PEM|NET
? ?
和上一個(gè)差不多,不同的是指定輸出格式
? ? -in filename
? ?
要分析的文件名稱。如果文件有密碼保護(hù)
,
會(huì)要你輸入的
.
? ? -passin arg
? ?
去看看
CA
那一章關(guān)于這個(gè)
option
的解釋吧。
? ? -out filename
? ?
要輸出的文件名。
? ? -passout arg
? ?
沒什么用的一個(gè)選項(xiàng),用來把保護(hù)
key
文件的密碼輸出的,意義和
passin
差不多。
? ? -sgckey
? ?
配合
NET
格式的私有密鑰文件的一個(gè)
option,
沒有必要去深入知道了。
? ? -des|-des3|-idea
? ?
指明用什么加密算法把我們的私有密鑰加密。加密的時(shí)候會(huì)需要我們輸入密碼來保護(hù)該文件的。如果這仨一個(gè)都沒有選,那么你的私有密鑰就以明文寫進(jìn)你的
key
文件。該選項(xiàng)只能輸出
PEM
格式的文件。
? ? -text
? ?
打印出私有密鑰的各個(gè)組成部分
.
? ? -noout
? ?
不打印出
key
的編碼版本信息。
? ? -modulus
? ?
把其公共密鑰的值也打印出來
? ? -pubin
? ?
缺省的來說是從輸入文件里讀到私有密鑰,這個(gè)就可以從輸入文件里去讀公共密鑰
.
? ? -pubout
? ?
缺省的來說是打印出私有密鑰,這個(gè)就可以打印公共密鑰
.
如果上面那個(gè)選項(xiàng)有
set
那么這個(gè)選項(xiàng)也自動(dòng)被
set.
? ? -check
? ?
檢查
RSA
的私有密鑰是否被破壞了這個(gè)指令實(shí)在和
dsa
太相似了。
copy
的我手軟。
? ?
現(xiàn)在解釋一下
NET
是一種什么格式。它是為了和老的
netscape server
以及
IIS
兼容才弄出來的。他使用沒有被
salt
過的
RC4
做加密算法,加密強(qiáng)度很底,如果不是一定要用就別用。
? ?
舉例時(shí)間:
? ?
把
RSA
私有密鑰文件的保護(hù)密碼去掉(最好別這么做)
? ? openssl rsa -in key.pem -out keyout.pem
? ?
用
DES3
算法加密我們的私有密碼文件:
? ? openssl rsa -in key.pem -des3 -out keyout.pem
? ?
把一個(gè)私有密鑰文件從
PEM
格式轉(zhuǎn)化成
DER
格式:
? ? openssl rsa -in key.pem -outform DER -out keyout.der
? ?
把私有密鑰的所有內(nèi)容詳細(xì)的打印出來:
? ? openssl rsa -in key.pem -text -noout
? ?
只打印出公共密鑰部分:
? ? openssl rsa -in key.pem -pubout -out pubkey.pem