1. 程式人生 > >用PGP實現加密和解密全過程

用PGP實現加密和解密全過程

安裝Gpg4win2.2.1,選擇安裝所有的元件,安裝成功後可以看到:


步驟1:產生一對RSA金鑰

輸入使用者名稱



再輸入電子郵件地址,如圖所示:




接下來輸入passphrase,然後就會生成2048位的公鑰/私鑰對(注意:可能要等待一段時間)




如果成功生成了金鑰,則會顯示在列表中。如下圖所示:


步驟2:互換公鑰

將公鑰匯出(ExportKeys)到一個檔案中(假定檔名為pub-hehehe.key),傳遞給需要給自己傳送加密檔案的電腦。如下圖所示:


對方(windows7)收到公鑰檔案(pub-hehehe.key)後,將公鑰匯入到本機。如果匯入成功,將在本機的GPA中列出該公鑰。

如圖所示匯入了ID號為F6EF19C2、郵件地址(你前面註冊的)的公鑰。



步驟3:向對方傳送加密檔案

選擇要加密的檔案,然後選擇要接收該加密檔案的使用者(與公鑰對應的私鑰持有者):


點選Encrypt按鈕將加密指定的檔案,得到副檔名為gpg的加密檔案,將該檔案傳送給私鑰持有者。私鑰持有者對其解密(需要輸入密碼串)後就可以恢復原檔案。


2. 上機實踐

本實驗在Windows7和Windows2003之間完成。

首先在Windows2003內用PGP生成一對公鑰/私鑰,匯出公鑰給Windows7,Windows7把該公鑰匯入自己的PGP。


然後在Windows7端加密“太陽島上.mp3”檔案,生成檔案“太陽島上.mp3.pgp”加密後的檔案,把該檔案通過郵件傳送給Windows2003,在Windows2003端開啟資源管理器,選擇Decrypt and verify即可以用自己的私鑰解密檔案,最後雙擊該檔案,能聽到“太陽島上這首歌”,說明實驗成功。反過來,用Windows7生成一對公鑰/私鑰與上面的例子相似,不在贅述。


相關推薦

PGP實現加密解密全過程

安裝Gpg4win2.2.1,選擇安裝所有的元件,安裝成功後可以看到: 步驟1:產生一對RSA金鑰 輸入使用者名稱 再輸入電子郵件地址,如圖所示: 接下來輸入passphrase,然後就會生成2048位的公鑰/私鑰對(注意:可能要等待一段時間)

java實現簡易加密解密

實現原理:               通過位運算的異或運算子“^”把字串與一個指定的值進行異或運算,從而改變字串中的每個字元的值,這樣就可以得到一個加密後的字串。傳送後再將加密後的字串通過源程式實現解

CryptoJS 實現js端3des加密解密openssl_encrypt實現php的3des加密解密,相容javaC#c++等

       因為要開發社交平臺,涉及到聊天內容,這些敏感內容想用3des加密傳輸,百度了好多資料,測試了好多次,終於實現了功能,可以直接使用,這裡寫下來,希望幫助到其他朋友。      聽說微信小程式需要資料加密,相信這個能幫到大家。 這裡說一下,iv向量一般是8位

什麽是私有密鑰密碼技術——密鑰加密算法采同一把密鑰進行加密解密

解密 網絡安全 位操作 線性復雜 對稱 大量 控制 全局 相位 什麽是私有密鑰密碼技術 私有密鑰(Symmetric Key),又叫對稱密鑰。密鑰加密算法采用同一把密鑰進行加密和解密。它的優點是加密和解密速度非常快,但密鑰的分發和管理比較困難。信息的發送者和接收者必須明確同

非對稱加密的簽名驗籤、加密解密的Java語言實現

本文采用java.security包的簽名和驗籤。採用A的私鑰簽名傳送至B,B採用A的公鑰進行驗籤。 加解密可以私鑰加密、公鑰解密(或者公鑰加密、私鑰解密)。 一般用於銀行報文傳輸、支付寶、微信、銀行以及各大銀行的資料交換。 package com.example.demo; impo

golang實現DES加密解密

package main import ( "bytes" "crypto/des" "crypto/cipher" "fmt" ) func padding(src []byte,blocksize int) []byte { n:=len(src) pad

golang實現RSA加密解密

package main import ( "crypto/rsa" "crypto/rand" "crypto/x509" "encoding/pem" "os" "fmt" ) func rsaGenKey(bits int) error { priva

使用PHP實現RSA演算法的加密解密

本文提供使用RSA演算法加密解密資料的PHP程式類(簽名和驗籤的實現方式可以檢視使用PHP實現RSA演算法的簽名和驗籤 這篇文章),封裝了格式化公鑰和私鑰檔案的方法,這樣無論使用什麼格式的公鑰或者私鑰都可以正常執行,公鑰加密後使用私鑰解密或者私鑰加密後用公鑰解密

C#實現AES加密解密函式

AES簡介 AES(The Advanced Encryption Standard)是美國國家標準與技術研究所用於加密電子資料的規範。它被預期能成為人們公認的加密包括金融、電信和政府數字資訊的方法。 AES 是一個新的可以用於保護電子資料的加密演算法。明確地說,AES 是

Java實現Base64加密解密

Base64是一種編碼格式,而不是演算法。 首先引入Base64類庫的maven依賴 <dependency> <groupId>com.xiaoleilu</groupId> <

使用 Oracle的儲存過程實現資料加密解密

 我們都知道,幾乎所有的資料庫都有儲存過程,但在實際開發中,它有什麼用途了?下面使用Oracle的儲存過程,採用Oracle自帶的dbms_obfuscation_toolkit.desencrypt

Java實現AES加密解密

/** * @param content * @return String * @Description:解密流程: * 1.同加密1-4步 * 2.將加密後的字串反紡成byte[]陣列 * 3.將加密內容解密 */ public stati

python 實現AES加密解密

aes port 加密算 偏移量 blog utf-8 加密和解密 sda return 參考 https://blog.csdn.net/zhchs2012/article/details/79032656 AES加密算法是一種對稱加密算法, 他有一個密匙, 即用來加密,

RSA加密解密實現

根據RSA一堆原理,寫了個實現的程式碼,親測可用,哈哈記錄一下 #include <iostream> #include <cstdio> #include <math.

android中檔案加密解密實現

最近專案中需要用到加解密功能,言外之意就是不想讓人家在反編譯後通過不走心就能獲取檔案裡一些看似有用的資訊,但考慮到加解密的簡單實現,這裡並不使用AES或DES加解密  為了對Android中assets檔案裡的資料加密,我決定自己動手豐衣足食。  首先我們需要一個配置檔案命名為config.properti

小王的尷尬日常(三)--Openssl 實現國密演算法(加密解密

上一次講了產生金鑰,這次我們講一下加密解密的實現。 先說一下加密解密的流程,一下這些內容都是從國密局釋出的國密標準文件裡面摘錄出來的。大家可以去國密局的網站上自己下載。 下列符號適用於本部分。 A,B:使用公鑰密碼系統的兩個使用者。 a,b

通過ios實現RSA加密解密

在加密和解密中,我們需要了解的知識有什麼事openssl;RSA加密演算法的基本原理;如何通過openssl生成最後我們需要的der和p12檔案。 廢話不多說,直接寫步驟: 第一步:openssl來生成公鑰和私鑰證書,最後需要得到公鑰證書和私鑰證書。這是在mac OX系統

iOS開發-Objective-c的AES加密解密演算法的實現

話不多說,直接上程式碼 .h import <Foundation/Foundation.h> @interface LanAES : NSObject +(NSData *)AES256ParmEncryptWithKey:(NSString *

Java結合keytool實現非對稱加密解密

非對稱加密 ascii 表示 import enc 通信 vat 方法 ports 在Java安全體系中,簽名屬於JAAS模塊,加解密屬於JCE模塊。keytool的使用keytool是JDK自帶的一個密鑰庫管理工具。這裏只用到了keytool的部分功能,包括生成密鑰對,導

【工具類】Java實現AES演算法 加密解密

最近在學AES加密,通過網上學習查詢資料,封裝了一個AES加密解密工具類,說幾點: 演算法/模式/填充,這個最好使用"AES/CBC/PKCS5Padding","ECB"在IOS中不安全(網上查詢資料得知),不要使用預設填充引數金鑰要使用16位,不使用"AES/CBC/