gpg加密使用

2022-04-14 11:32:06 字數 1610 閱讀 7405

gpg一般是兩方用來加密傳送資訊的。

使用對方的公鑰進行加密,可以確保只有對方才能用他的私鑰解密。

使用自己的私鑰對訊息簽名,可以確保對方用自己的公鑰驗證訊息的確源自自己。

gpg --generate-key
之後會詢問使用者名稱、郵箱以及密碼,最後會需要大量的隨機數(這裡我等了十分鐘以上才好)

一般私鑰匯出是為了在其他機器上解密檔案

# 獲取私鑰id

gpg --list-secret-keys

# 匯出私鑰到檔案

gpg --export-secret-keys $id > my-private-key.asc

# 在另一台機器上匯入

gpg --import my-private-key.asc

# 如果另一台機器上已經存在,則可以先刪除

gpg --delete-keys

gpg --delete-secret-keys

# 檢視有哪些公鑰可匯出

gpg --list-keys

# 匯出指定公鑰

gpg --output blake.gpg --armor --export [email protected]

# 匯入

gpg --import blake.gpg

# 確認key有效

gpg --edit-key [email protected]

>fpr

># 注意這裡trust要選擇5,後面簽名才能不用再確認

>trust

>check

gpg --encrypt --armor --recipient recipient_email $file
gpg --decrypt --output  message-for-me.gpg
快取

通常情況下,使用gpg 解密後,gpg agent會快取輸入的密碼一段時間。

如果需要強制不進行快取,每次都提示輸入密碼

建立~/.gnupg/gpg-agent.conf檔案,並增加以下內容:

default-cache-ttl 1

max-cache-ttl 1

然後重啟gpg agent:

echo reloadagent | gpg-connect-agent
通過命令列提供密碼

如果想在指令碼中進行解密,一般是不希望彈出密碼框,而是直接通過命令提供。

命令如下:

gpg --pinentry-mode loopback --batch --yes --passphrase "$" --output $ --decrypt $
這裡關鍵有兩點:

必須增加--batch選項,否則--passphrase選項無效,這是在man手冊裡有說的

必須增加--pinentry-mode loopback選項,否則仍然提示密碼框,這個手冊中沒說,搜尋了很久才知道如何解決(這個回答)

Sentinel LDK linux加密使用

在windows上安裝sentinel ldk 將linux相應程式包拷貝到linux作業系統 在windows上設定加密的資訊 進入sentinel ldk sdk 7.9 linux redistribute runtime目錄 安裝aksusbd ubuntu通過dpkg安裝,centos通過...

RSA 加密解密使用例項

本文不討論rsa加密解密本身,只記錄使用方法及遇到的坑,rsa原理及注意事項可在網上查詢。背景 公司的乙個需求,要求對接客戶的乙個平台,通訊方式為mqtt,資料報含token及json內容,在通訊過程中傳送的mqtt資訊必須帶上token,這個token是要從客戶平台獲取,通過http協議,post...

使用 GPG 加密和解密檔案

目標 使用 gpg 加密檔案 發行版 適用於任何發行版 要求 安裝了 gpg 的 linux 或者擁有 root 許可權來安裝它。難度 簡單 約定 介紹 加密非常重要。它對於保護敏感資訊來說是必不可少的。你的私人檔案應該要被加密,而 gpg 提供了很好的解決方案。安裝 gpg gpg 的使用非常廣泛...