<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零全零美(www.zzgwt.com)
    生活中的很多事情,并不像If...Else那么簡單!
    posts - 96,comments - 52,trackbacks - 0
    openssl簡介-指令rsautl
        用法:
       
        openssl rsautl [-in file] [-out file] [-inkey file] [-pubin] [-certin]
       
        [-sign] [-verify] [-encrypt] [-decrypt] [-pkcs] [-ssl] [-raw] [-hexdump]
       
        [-asn1parse]
       
         
        描述:
        本指令能夠使用RSA算法簽名,驗(yàn)證身份, 加密/解密數(shù)據(jù)。

       
        OPTIONS
        -in filename
        指定輸入文件名。缺省為標(biāo)準(zhǔn)輸入。
        -out filename
        指定輸入文件名, 缺省為標(biāo)準(zhǔn)輸出。
        -inkey file
        指定我們的私有密鑰文件, 格式必須是RSA私有密鑰文件。
        -pubin
        指定我們的公共密鑰文件。說真的我還真不知道RSA的公共密鑰文件有什么用,一般公共密鑰都是放在證書里面的。
        -certin
        指定我們的證書文件了。
        -sign
        給輸入的數(shù)據(jù)簽名。需要我們的私有密鑰文件。
        -verify
        對輸入的數(shù)據(jù)進(jìn)行驗(yàn)證。
        -encrypt
        用我們的公共密鑰對輸入的數(shù)據(jù)進(jìn)行加密。
        -decrypt
        用RSA的私有密鑰對輸入的數(shù)據(jù)進(jìn)行解密。
        -pkcs, -oaep, -ssl, -raw
       采用的填充模式, 上述四個值分別代表:PKCS#1.5(缺省值), PKCS#1 OAEP, SSLv2里面特定的填充模式,或者不填充。如果要簽名,只有-pkcs和-raw可以使用.
        -hexdump
        用十六進(jìn)制輸出數(shù)據(jù)。
        -asn1parse
        對輸出的數(shù)據(jù)進(jìn)行ASN1分析。看看指令asn1parse吧。該指令一般和-verify一起用的時候威力大。
        本指令加密數(shù)據(jù)的時候只能加密少量數(shù)據(jù),要加密大量數(shù)據(jù),估計要調(diào)API.我也沒試過寫RSA加密解密的程序來玩。
        舉例時間:
        用私有密鑰對某文件簽名:
        openssl rsautl -sign -in file -inkey key.pem -out sig
        注意哦, 文件真的不能太大, 這個不能太大意思是必須很小。
        文件大小最好不要大過73。絕對不能多過150,多了就會出錯。
        這個工具真是用來玩的
       
        對簽名過的數(shù)據(jù)進(jìn)行驗(yàn)證,得到原來的數(shù)據(jù)。
        openssl rsautl -verify -in sig -inkey key.pem
        檢查原始的簽名過的數(shù)據(jù):
        openssl rsautl -verify -in sig -inkey key.pem -raw -hexdump
       
         0000 - 00 01 ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
       
         0010 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
       
         0020 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
       
         0030 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
       
         0040 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
       
         0050 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
       
         0060 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
       
         0070 - ff ff ff ff 00 68 65 6c-6c 6f 20 77 6f 72 6c 64 .....hello world
        很明顯,這是PKCS#1結(jié)構(gòu):使用0xff填充模式。
        配合指令asn1parse,可以分析簽名的證書,我們在req指令里說了怎么做自簽名的證書了,現(xiàn)在來分析一下先。
        openssl asn1parse -in pca-cert.pem
       
        0:d=0 hl=4 l= 742 cons: SEQUENCE
       
         4:d=1 hl=4 l= 591 cons: SEQUENCE
       
         8:d=2 hl=2 l= 3 cons: cont [ 0 ]
       
         10:d=3 hl=2 l= 1 prim: INTEGER :02
       
         13:d=2 hl=2 l= 1 prim: INTEGER :00
       
         16:d=2 hl=2 l= 13 cons: SEQUENCE
       
         18:d=3 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption
       
         29:d=3 hl=2 l= 0 prim: NULL
       
         31:d=2 hl=2 l= 92 cons: SEQUENCE
       
         33:d=3 hl=2 l= 11 cons: SET
       
         35:d=4 hl=2 l= 9 cons: SEQUENCE
       
         37:d=5 hl=2 l= 3 prim: OBJECT :countryName
       
         42:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AU
       
         ....
       
         599:d=1 hl=2 l= 13 cons: SEQUENCE
       
         601:d=2 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption
       
         612:d=2 hl=2 l= 0 prim: NULL
       
         614:d=1 hl=3 l= 129 prim: BIT STRING
       
        最后一行BIT STRING就是實(shí)際的簽名。我們可以這樣子捏它出來:
        openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614
       還可以這樣子把公共密鑰給弄出來:
        openssl x509 -in test/testx509.pem -pubkey -noout >;pubkey.pem
        我們也可以這樣子分析簽名:
        openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
        0:d=0 hl=2 l= 32 cons: SEQUENCE
       
         2:d=1 hl=2 l= 12 cons: SEQUENCE
       
         4:d=2 hl=2 l= 8 prim: OBJECT :md5
       
         14:d=2 hl=2 l= 0 prim: NULL
       
         16:d=1 hl=2 l= 16 prim: OCTET STRING
       
         0000 - f3 46 9e aa 1a 4a 73 c9-37 ea 93 00 48 25 08 b5 .F...Js.7...H%..
       
        這是經(jīng)過分析后的ASN1結(jié)構(gòu)。可以看出來使用的哈希算法是md5. (很抱歉,我自己試這一行的時候輸出結(jié)果卻完全不同。
        0:d=0 hl=2 l= 120 cons: appl [ 24 ]
        length is greater than 18
        完全沒有辦法看出那里有寫哈希算法。)
        證書里面的簽名部分可以這么捏出來:
        openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4
        這樣得到他的哈希算法的細(xì)節(jié):
        openssl md5 -c tbs
        MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5
    posted on 2009-11-27 17:42 零全零美 閱讀(1227) 評論(0)  編輯  收藏 所屬分類: 安全相關(guān)
    主站蜘蛛池模板: 日韩成人免费视频| 97人妻精品全国免费视频| 美女被免费喷白浆视频| 亚洲va在线va天堂va888www| 色播在线永久免费视频网站| 亚洲热妇无码AV在线播放| 热99RE久久精品这里都是精品免费| 伊人久久综在合线亚洲91| g0g0人体全免费高清大胆视频| 亚洲欧洲一区二区三区| 国产高清对白在线观看免费91| 国产精品亚洲mnbav网站| 怡红院免费全部视频在线视频| 久久青草亚洲AV无码麻豆| 99久久久国产精品免费牛牛| 亚洲理论在线观看| 国内免费高清在线观看| 亚洲国产无线乱码在线观看| 亚洲国产香蕉人人爽成AV片久久 | 国产成人+综合亚洲+天堂| 亚洲乱亚洲乱少妇无码| 毛片在线播放免费观看| 亚洲国产成人久久| 日本v片免费一区二区三区| 特级做a爰片毛片免费看| 久久久亚洲欧洲日产国码农村| 五月亭亭免费高清在线| 亚洲一区二区三区丝袜| 免费一区二区视频| 久久免费线看线看| 亚洲成av人无码亚洲成av人| 亚洲日韩一页精品发布| 免费能直接在线观看黄的视频| 午夜亚洲国产精品福利| 亚洲成AV人片在线观看无码 | 免费吃奶摸下激烈视频| 国产成年无码久久久免费| 亚洲午夜在线一区| 久久影院亚洲一区| 91免费精品国自产拍在线不卡| 污网站免费在线观看|