日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java公钥加密私钥解密过程_GPG加密解密过程

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java公钥加密私钥解密过程_GPG加密解密过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GPG加密解密過程

一、Linux系統下

1.安裝

yum安裝

[root@POC-ORACLE ~]# yum install gnupg

下載安裝包安裝

https://www.gnupg.org/download/index.en.html

查看gpg幫助

[root@POC-ORACLE ~]# gpg --help

gpg (GnuPG) 2.0.14

libgcrypt 1.4.5

Copyright (C) 2009 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

......

支持的算法:

公鑰:RSA, ELG, DSA

對稱加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,

CAMELLIA192, CAMELLIA256

散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224

壓縮:不壓縮, ZIP, ZLIB, BZIP2

語法:gpg [選項] [文件名]

簽名、檢查、加密或解密

默認的操作依輸入數據而定

指令:

-s, --sign make a signature

--clearsign make a clear text signature

-b, --detach-sign 生成一份分離的簽名

-e, --encrypt 加密數據

-c, --symmetric 僅使用對稱加密

-d, --decrypt 解密數據(默認)

--verify 驗證簽名

-k, --list-keys 列出密鑰

--list-sigs 列出密鑰和簽名

--check-sigs 列出并檢查密鑰簽名

--fingerprint 列出密鑰和指紋

-K, --list-secret-keys 列出私鑰

--gen-key 生成一副新的密鑰對

--delete-keys 從公鑰鑰匙環里刪除密鑰

--delete-secret-keys 從私鑰鑰匙環里刪除密鑰

--sign-key 為某把密鑰添加簽名

--lsign-key 為某把密鑰添加本地簽名

--edit-key 編輯某把密鑰或為其添加簽名

--gen-revoke 生成一份吊銷證書

--export 導出密鑰

--send-keys 把密鑰導出到某個公鑰服務器上

--recv-keys 從公鑰服務器上導入密鑰

--search-keys 在公鑰服務器上搜尋密鑰

--refresh-keys 從公鑰服務器更新所有的本地密鑰

--import 導入/合并密鑰

--card-status 打印卡狀態

--card-edit 更改卡上的數據

--change-pin 更改卡的 PIN

--update-trustdb 更新信任度數據庫

--print-md print message digests

--server run in server mode

選項:

-a, --armor 輸出經 ASCII 封裝

-r, --recipient USER-ID encrypt for USER-ID

-u, --local-user USER-ID use USER-ID to sign or decrypt

-z N set compress level to N (0 disables)

--textmode 使用標準的文本模式

-o, --output FILE write output to FILE

-v, --verbose 詳細模式

-n, --dry-run 不做任何改變

-i, --interactive 覆蓋前先詢問

--openpgp 行為嚴格遵循 OpenPGP 定義

(請參考在線說明以獲得所有命令和選項的完整清單)

范例:

-se -r Bob [文件名] 為 Bob 這個收件人簽名及加密

--clearsign [文件名] 做出明文簽名

--detach-sign [文件名] 做出分離式簽名

--list-keys [某甲] 顯示密鑰

--fingerprint [某甲] 顯示指紋

顯示幫助安裝成功

2.生成密鑰

[root@POC-ORACLE ~]# gpg --gen-key

gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

請選擇您要使用的密鑰種類:

(1) RSA and RSA (default)

(2) DSA and Elgamal

(3) DSA (僅用于簽名)

(4) RSA (僅用于簽名)

您的選擇? 1

RSA 密鑰長度應在 1024 位與 4096 位之間。

您想要用多大的密鑰尺寸?(2048)2048

您所要求的密鑰尺寸是 2048 位

請設定這把密鑰的有效期限。

0 = 密鑰永不過期

= 密鑰在 n 天后過期

w = 密鑰在 n 周后過期

m = 密鑰在 n 月后過期

y = 密鑰在 n 年后過期

密鑰的有效期限是?(0) 0

密鑰永遠不會過期

以上正確嗎?(y/n)y

You need a user ID to identify your key; the software constructs the user ID

from the Real Name, Comment and Email Address in this form:

"Heinrich Heine (Der Dichter) "

真實姓名:lyzkey

電子郵件地址:lyzkey@qq.com

注釋:

您選定了這個用戶標識:

“lyzkey ”

更改姓名(N)、注釋(C)、電子郵件地址(E)或確定(O)/退出(Q)?o

您需要一個密碼來保護您的私鑰。

輸入兩次密碼

can't connect to `/root/.gnupg/S.gpg-agent': 沒有那個文件或目錄

我們需要生成大量的隨機字節。這個時候您可以多做些瑣事(像是敲打鍵盤、移動

鼠標、讀寫硬盤之類的),這會讓隨機數字發生器有更好的機會獲得足夠的熵數。

幾分鐘后完成生成

gpg: 密鑰 10A20444 被標記為絕對信任

公鑰和私鑰已經生成并經簽名。

gpg: 正在檢查信任度數據庫

gpg: 需要 3 份勉強信任和 1 份完全信任,PGP 信任模型

gpg: 深度:0 有效性: 1 已簽名: 0 信任度:0-,0q,0n,0m,0f,1u

pub 2048R/10A20444 2018-04-29

密鑰指紋 = 9259 721A 61DA 6C18 3DBA 05CE 9068 BA24 10A2 0444

uid lyzkey

sub 2048R/4B7C31FC 2018-04-29

另一臺服務器上同樣創建密鑰

[root@POC-APP ~]# gpg --list-keys

/root/.gnupg/pubring.gpg

------------------------

pub 2048R/F98FA558 2017-12-07

uid lyzkk

sub 2048R/B3A4A822 2017-12-07

3.導出公鑰

[root@POC-APP ~]# gpg --armor --output lyzkk.asc --export F98FA558

F98FA558 為pub key的ID

公鑰導出文件 可vi查看

[root@POC-APP ~]# ll lyzkk.asc

-rw-r--r--. 1 root root 1703 12月 7 18:29 lyzkk.asc

4.導入公鑰

將公鑰發布,導入另一臺服務器

[root@POC-ORACLE ~]# gpg --import lyzkk.asc

gpg: 密鑰 F98FA558:公鑰“lyzkk ”已導入

gpg: 合計被處理的數量:1

gpg: 已導入:1 (RSA: 1)

5.文件加密

給文件不加簽,加密

[root@POC-ORACLE ~]# gpg --recipient lyzkk --output install.log.asc --encrypt install.log

gpg: B3A4A822:沒有證據表明這把密鑰真的屬于它所聲稱的持有者

pub 2048R/B3A4A822 2017-12-07 lyzkk

主鑰指紋: EE13 B668 8956 7766 EEF7 6DE2 67F5 B833 F98F A558

子鑰指紋: B6DA 032C 47B4 649E 1046 8CE4 FB2C 55EF B3A4 A822

這把密鑰并不一定屬于用戶標識聲稱的那個人。如果您真的知道自

己在做什么,您可以在下一個問題回答 yes。

無論如何還是使用這把密鑰嗎?(y/N)y

上傳到有對應私鑰解密的服務器

6.文件解密

[root@POC-APP ~]# gpg --decrypt install.log.asc --output install.log

用法:gpg [選項] --decrypt [文件名]

參數順序不能反

[root@POC-APP ~]# gpg --output install.log --decrypt install.log.asc

您需要輸入密碼,才能解開這個用戶的私鑰:“lyzkk ”

2048 位的 RSA 密鑰,鑰匙號 B3A4A822,建立于 2017-12-07 (主鑰匙號 F98FA558)

can't connect to `/root/.gnupg/S.gpg-agent': 沒有那個文件或目錄

gpg: 由 2048 位的 RSA 密鑰加密,鑰匙號為 B3A4A822、生成于 2017-12-07

“lyzkk ”

解密后的文件

7.刪除密鑰

刪除鑰匙前需要先刪除私鑰

[root@POC-ORACLE ~]# gpg --delete-key lyzkey

gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

gpg: 公鑰“lyzkey”有對應的私鑰!

gpg: 請先使用“--delete-secret-keys”選項來刪除它。

[root@POC-ORACLE ~]# gpg --delete-secret-keys lyzkey

gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

sec 2048R/CCB014D0 2018-04-28 lyzkey

要從鑰匙環里刪除這把密鑰嗎?(y/N)y

這是一把私鑰!――真的要刪除嗎?(y/N)y

[root@POC-ORACLE ~]# gpg --delete-keys lyzkey

gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

pub 2048R/CCB014D0 2018-04-28 lyzkey

要從鑰匙環里刪除這把密鑰嗎?(y/N)y

8.涉及命令

1、生成密鑰對:gpg --gen-key

為用戶生成新密鑰對。需提供:密鑰類型(默認為RSA/RSA);密鑰長度(以位為單位,越長越強);過期時間(以防密鑰損壞);填:名稱、電子郵箱、標識密鑰所有者的注釋;密碼短語(必須提供,如果私鑰被盜,將無法使用)。

2、列出公鑰:gpg --list-keys

列出所擁有的公鑰:他們自己的公鑰以及從與之通信的其他人那里導入的任何公鑰。

3、導出公鑰:gpg –export –armor key-id -o file.key

將公鑰導出至文件,以便于其他人使用。–armor選項以文本形式顯示輸出,而非二進制格式。key-id是電子郵箱地址或在–list-keys的pub行中列出的八位十六進制數。

4、導入公鑰:gpg –import file.key

從發送給您的密鑰文件中導入其他人的公鑰

5、加密文件:gpg –encrypt –armor -r key-id file

用key-id的公鑰加密消息。如果未提供-r key-id,命令將提示收件人輸入。默認輸出文件為file.asc.

6、解密文件:gpg –decrypt file

二、Windows系統下

1.安裝

https://www.gnupg.org/download/index.en.html

安裝對應密鑰管理軟件

2.新建密鑰對

輸入信息

3.導入公鑰

導入完成

公鑰導入成功

4.加密文件

點擊加密按鈕,選擇加密文件

選擇為他人加密

加密成功

5.解密文件

用linux端私鑰解密

[root@POC-APP ~]# gpg --output codetemplates.xml --decrypt codetemplates.xml.gpg

解密成功

6.刪除密鑰

右鍵刪除即可

總結

以上是生活随笔為你收集整理的java公钥加密私钥解密过程_GPG加密解密过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。