久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 11289|回復(fù): 0
收起左側(cè)

用openssl做rsa數(shù)字簽名、校驗(yàn),及n、e到PEM格式轉(zhuǎn)換

[復(fù)制鏈接]
ID:51024 發(fā)表于 2014-8-16 23:08 | 顯示全部樓層 |閱讀模式

0. 產(chǎn)生測(cè)試用的文件
echo "hello world" >hello.txt

1. 做一下sha256 hash
$ openssl dgst -sha256 hello.txt
SHA256(hello.txt)= a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
或者,來個(gè)二進(jìn)制輸出
$ openssl dgst -sha256 -binary -out hello.sha256 hello.txt
$ od -v -An -t x1 hello.sha256
a9 48 90 4f 2f 0f 47 9b 8f 81 97 69 4b 30 18 4b
0d 2e d1 c1 cd 2a 1e c0 fb 85 d2 99 a1 92 a4 47

2. 創(chuàng)建rsa密鑰
$ openssl genrsa -out key.pri -f4 2048
Generating RSA private key, 2048 bit long modulus
......................................................+++
..........................................+++
e is 65537 (0x10001)

3. 看一下密鑰內(nèi)容
$ openssl rsa -inform PEM -in key.pri -text
....

4. 導(dǎo)出公鑰
$ openssl rsa -inform PEM -outform PEM -in key.pri -out key.pub -pubout
writing RSA key

5. 查看公鑰
$ openssl rsa -inform PEM -in key.pub -pubin -text
....

6. hash并用私鑰簽名
$ openssl dgst -sha256 -out hello.sig -sign key.pri -keyform PEM hello.txt
$ od -v -An -t x1 hello.sig
....

7. 公鑰校驗(yàn)
$ openssl dgst -sha256 -keyform PEM -verify key.pub -signature hello.sig hello.txt
Verified OK
上面這個(gè)命令只能輸出"Verification OK"或者"Verification Failure"。如果想看到恢復(fù)的數(shù)據(jù),可以用下面的命令:
$ openssl rsautl -in hello.sig -inkey key.pub -pubin -verify -hexdump
0000 - 30 31 30 0d 06 09 60 86-48 01 65 03 04 02 01 05   010...`.H.e.....
0010 - 00 04 20 a9 48 90 4f 2f-0f 47 9b 8f 81 97 69 4b   .. .H.O/.G....iK
0020 - 30 18 4b 0d 2e d1 c1 cd-2a 1e c0 fb 85 d2 99 a1   0.K.....*.......
0030 - 92 a4 47                                          ..G

或者不去掉pkcs填充的字節(jié):
$ openssl rsautl -in hello.sig -inkey key.pub -pubin -verify -hexdump -raw
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 ff ff ff ff-ff ff ff ff ff ff ff ff   ................
0080 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
0090 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
00a0 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
00b0 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
00c0 - ff ff ff ff ff ff ff ff-ff ff ff ff 00 30 31 30   .............010
00d0 - 0d 06 09 60 86 48 01 65-03 04 02 01 05 00 04 20   ...`.H.e.......
00e0 - a9 48 90 4f 2f 0f 47 9b-8f 81 97 69 4b 30 18 4b   .H.O/.G....iK0.K
00f0 - 0d 2e d1 c1 cd 2a 1e c0-fb 85 d2 99 a1 92 a4 47   .....*.........G

或者來個(gè)二進(jìn)制的文件:
$ openssl rsautl -in hello.sig -out hello.rec -inkey key.pub -pubin -verify
$ od -v -An -t x1 hello.rec
30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05
00 04 20 a9 48 90 4f 2f 0f 47 9b 8f 81 97 69 4b
30 18 4b 0d 2e d1 c1 cd 2a 1e c0 fb 85 d2 99 a1
92 a4 47
最后32個(gè)字節(jié)是hello.txt的sha256值,前面19個(gè)字節(jié)是按照pkcs規(guī)范添加的用來標(biāo)示hash算法的數(shù)據(jù)。

有時(shí)候你拿到的公鑰可能不是PEM格式的,而只是一個(gè)n和e,openssl的標(biāo)準(zhǔn)命令是不能直接用的,也沒有提供轉(zhuǎn)換命令(存疑,反正我是沒發(fā)現(xiàn)比自己寫個(gè)小程序更簡(jiǎn)單的辦法)。這時(shí)候就需要用openssl庫(kù)自己寫個(gè)小程序來做轉(zhuǎn)換了。好在這個(gè)程序?qū)懫饋聿宦闊玫降膸讉(gè)函數(shù)在下面幾個(gè)頭文件中定義:
openssl/bn.h、openssl/rsa.h、openssl/pem.h


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产高清精品一区二区三区 | 亚洲三级av | 91免费观看| 久久九九99 | 欧美日韩亚洲视频 | 天天综合天天 | 日韩电影免费观看中文字幕 | 欧美激情精品久久久久 | 国产清纯白嫩初高生在线播放视频 | 天天综合网天天综合色 | 久久久久亚洲精品国产 | 日本不卡高清视频 | 国产精品亚洲综合 | 国产日韩欧美二区 | 久久婷婷国产麻豆91 | 国产精品久久久久久久粉嫩 | 最新中文字幕在线 | 亚洲免费在线视频 | 亚洲精品欧美一区二区三区 | 国产精品99视频 | 国产伊人久久久 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 国产成人一区二 | 日韩三级免费观看 | 一区二区在线 | 污视频在线免费观看 | 国产精品久久国产精品久久 | 欧美1区2区 | 99久久精品国产毛片 | 黄色一级视频免费 | 久久久久久久av麻豆果冻 | 黄色大片在线 | 欧美成人一区二区三区 | 国产h视频 | 亚洲国产精久久久久久久 | 99免费视频| 欧美性一级 | 欧美日韩不卡在线 | 91日韩| 欧美视频精品 | 福利视频一区二区 |