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