人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

Linux下OpenSSL的DSA與RSA非對(duì)稱加密解析

發(fā)布日期:2022-01-31 18:34 | 文章來(lái)源:源碼中國(guó)

在日常系統(tǒng)管理工作中,需要作一些加解密的工作,通過(guò)openssl工具包就能完成我們很多需求!
1. openssl RSA 加解密
RSA是基于數(shù)論中大素?cái)?shù)的乘積難分解理論上的非對(duì)稱加密法,使用公私鑰的方法進(jìn)行加解密
公鑰 用于加密,它是向所有人公開(kāi)的 ; 私鑰用于解密,只有密文的接收者持有
生成一個(gè)密鑰(私鑰)

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# openssl genrsa -out private.key 1024

注意: 需要注意的是這個(gè)文件包含了公鑰和密鑰兩部分,也就是說(shuō)這個(gè)文件即可用來(lái)加密也可以用來(lái)解密,后面的1024是生成密鑰的長(zhǎng)度.
通過(guò)密鑰文件private.key 提取公鑰

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# openssl rsa -in private.key -pubout -out pub.key

使用公鑰加密信息

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# echo -n "123456" | openssl rsautl -encrypt -inkey pub.key -pubin >encode.result

使用私鑰解密信息

復(fù)制代碼
代碼如下:

[root@hunterfu ~]#cat encode.result | openssl rsautl -decrypt -inkey private.key
123456

至此,一次RSA加密解密的過(guò)程已經(jīng)完成!


2. openssl DSA簽名與驗(yàn)證
和RSA加密解密過(guò)程相反,在DSA數(shù)字簽名和認(rèn)證中,發(fā)送者使用自己的私鑰對(duì)文件或消息進(jìn)行簽名,接受者收到消息后使用發(fā)送者的公鑰來(lái)驗(yàn)證簽名的真實(shí)性
DSA只是一種算法,和RSA不同之處在于它不能用作加密和解密,也不能進(jìn)行密鑰交換,只用于簽名,它比RSA要快很多.
生成一個(gè)密鑰(私鑰)

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# openssl dsaparam -out dsaparam.pem 1024
[root@hunterfu ~]# openssl gendsa -out privkey.pem dsaparam.pem

生成公鑰

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# openssl dsa -in privkey.pem -out pubkey.pem -pubout
[root@hunterfu ~]# rm -fr dsaparam.pem

使用私鑰簽名

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# echo -n "123456" | openssl dgst -dss1 -sign privkey.pem > sign.result

使用公鑰驗(yàn)證

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# echo -n "123456" | openssl dgst -dss1 -verify pubkey.pem -signature sign.result
Verified OK

至此,一次DSA簽名與驗(yàn)證過(guò)程完成!


3. 總結(jié)及注意事項(xiàng)
注意: 由于信息經(jīng)過(guò)加密或者簽名后,都變成不可讀模式,為了方便終端查看和傳輸使用(url提交數(shù)據(jù),需要作urlencode操作),可以使用base64進(jìn)行編碼
openssl enc -base64 -A :將加密后的信息使用base64編碼
openssl enc -d -base64 -A : 將信息使用base64反編碼
java中此私鑰需要轉(zhuǎn)換下格式才能使用:

復(fù)制代碼
代碼如下:

[root@hunterfu ~]# openssl pkcs8 -topk8 -nocrypt -in private.key -outform PEM -out java_private.key

當(dāng)然openssl 是一個(gè)很實(shí)用的加密工具包,還有很多東西值得學(xué)習(xí)和總結(jié),以后有空再說(shuō)!

香港穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部