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

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

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

    捕風之巢

    統計

    留言簿(3)

    java友情鏈接

    閱讀排行榜

    評論排行榜

    openssl簡介(二十)--指令rsautl

    ?

    一.???? 指令 rsautl

    用法:
    ? ?
    ? ? openssl rsautl [-in file] [-out file] [-inkey file] [-pubin] [-certin]
    ? ?
    ? ? [-sign] [-verify] [-encrypt] [-decrypt] [-pkcs] [-ssl] [-raw] [-hexdump]
    ? ?
    ? ? [-asn1parse]
    ? ?
    ? ???
    ? ?
    描述:
    ? ?
    本指令能夠使用 RSA 算法簽名,驗證身份, 加密 / 解密數據。
    ? ?
    ? ? OPTIONS
    ? ? -in filename
    ? ?
    指定輸入文件名。缺省為標準輸入。
    ? ? -out filename
    ? ?
    指定輸入文件名, 缺省為標準輸出。
    ? ? -inkey file
    ? ?
    指定我們的私有密鑰文件, 格式必須是 RSA 私有密鑰文件。
    ? ? -pubin
    ? ?
    指定我們的公共密鑰文件。說真的我還真不知道 RSA 的公共密鑰文件有什么用,一般公共密鑰都是放在證書里面的。
    ? ? -certin
    ? ?
    指定我們的證書文件了。
    ? ? -sign
    ? ?
    給輸入的數據簽名。需要我們的私有密鑰文件。
    ? ? -verify
    ? ?
    對輸入的數據進行驗證。
    ? ? -encrypt
    ? ?
    用我們的公共密鑰對輸入的數據進行加密。
    ? ? -decrypt
    ? ?
    RSA 的私有密鑰對輸入的數據進行解密。
    ? ? -pkcs, -oaep, -ssl, -raw
    ? ?
    采用的填充模式, 上述四個值分別代表: PKCS#1.5( 缺省值 ), PKCS#1 OAEP, SSLv2 里面特定的填充模式,或者不填充。如果要簽名,只有 -pkcs -raw 可以使用 .
    ? ? -hexdump
    ? ?
    用十六進制輸出數據。
    ? ? -asn1parse
    ? ?
    對輸出的數據進行 ASN1 分析??纯粗噶?/span> asn1parse 吧。該指令一般和 -verify 一起用的時候威力大。
    ? ?
    本指令加密數據的時候只能加密少量數據,要加密大量數據,估計要調 API. 我也沒試過寫 RSA 加密解密的程序來玩。
    ? ?
    舉例時間:
    ? ?
    用私有密鑰對某文件簽名:
    ? ? openssl rsautl -sign -in file -inkey key.pem -out sig
    ? ?
    注意哦, 文件真的不能太大, 這個不能太大意思是必須很小。
    ? ?
    文件大小最好不要大過 73 。絕對不能多過 150 ,多了就會出錯。
    ? ?
    這個工具真是用來玩的
    ? ?
    ? ?
    對簽名過的數據進行驗證,得到原來的數據。
    ? ? openssl rsautl -verify -in sig -inkey key.pem
    ? ?
    檢查原始的簽名過的數據:
    ? ? 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-6c6f 20 77 6f 72 6c 64 .....hello world
    ? ?
    很明顯,這是 PKCS#1 結構:使用 0xff 填充模式。
    ? ?
    配合指令 asn1parse, 可以分析簽名的證書,我們在 req 指令里說了怎么做自簽名的證書了,現在來分析一下先。
    ? ? 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 就是實際的簽名。我們可以這樣子捏它出來:
    ? ? 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 1a4a73 c9-37 ea 93 00 48 25 08 b5 .F...Js.7...H%..
    ? ?
    ? ?
    這是經過分析后的 ASN1 結構??梢钥闯鰜硎褂玫墓K惴ㄊ?/span> md5. ( 很抱歉,我自己試這一行的時候輸出結果卻完全不同。
    ? ? 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
    ? ?
    這樣得到他的哈希算法的細節:
    ? ? openssl md5 -c tbs
    ? ? MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5

    posted on 2006-10-17 15:44 捕風 閱讀(585) 評論(0)  編輯  收藏 所屬分類: java安全

    主站蜘蛛池模板: 国产精品va无码免费麻豆| 成人免费无遮挡无码黄漫视频| 亚洲国产精品毛片av不卡在线| 亚洲校园春色另类激情| 日本人的色道免费网站| 亚洲一区中文字幕| 啦啦啦中文在线观看电视剧免费版| 亚洲AV综合色区无码二区偷拍 | 亚洲六月丁香婷婷综合| 国产在线a免费观看| 亚洲成a人无码亚洲成www牛牛 | 亚洲成AV人片在线观看| 免费精品一区二区三区第35| 午夜亚洲AV日韩AV无码大全| 亚洲视频在线免费看| 久久亚洲最大成人网4438| 曰皮全部过程视频免费国产30分钟| 人人狠狠综合久久亚洲| 亚洲一区二区三区免费| 久久99免费视频| 色偷偷亚洲女人天堂观看欧| 国产成人免费高清在线观看 | 120秒男女动态视频免费| 亚洲avav天堂av在线网爱情| 精品免费国产一区二区三区| 国产成人亚洲精品蜜芽影院| 亚洲视频一区二区| 99视频在线免费看| 亚洲中文字幕无码中文| 伊在人亚洲香蕉精品区麻豆| 中国一级特黄的片子免费| 久久夜色精品国产噜噜亚洲AV| 青青草免费在线视频| 黄色三级三级三级免费看| 亚洲乱码日产一区三区| 亚洲成在人线aⅴ免费毛片| 日韩精品无码永久免费网站| 无码欧精品亚洲日韩一区| 全免费a级毛片免费看不卡| 久久一区二区三区免费| 亚洲av无码专区在线|