[svc]openssl對稱加密,非對稱加密最佳實戰
OpenSSL進行aes加密解密-對稱加密
- 建立檔案test.txt, 特意寫入中英文
# cd /tmp
# echo "test測試" > test.txt
- 開始加密, 使用aes-128-cbc演算法, 也可以使用其他演算法, 通過檢視openssl的幫助可獲知
# openssl aes-128-cbc -salt -in test.txt -out test.txt.aes
enter aes-128-cbc encryption password:<輸入密碼>
Verifying - enter aes-128-cbc encryption password:<確認密碼 >
- 檢視加密前後的檔案大小, 加密後文件明顯增大了
# ll test.txt*
-rw-r--r-- 1 root root 9 Aug 11 15:42 test.txt
-rw-r--r-- 1 root root 32 Aug 11 15:43 test.txt.aes
–檢視加密前後的檔案內容, 加密後文件無法直接檢視, 顯示亂碼
# cat test.txt
test測試
# cat test.txt.aes
Salted__碾RTqm6棚顱
- 現在開始解密, 會提示輸入密碼, 如果密碼有誤則無法解密
# openssl aes-128-cbc -d -salt -in test.txt.aes -out test.txt.out
enter aes-128-cbc decryption password:<輸入錯誤密碼>
bad decrypt
6150:error:06065064:digital envelope routines:EVP_DecryptFinal:bad decrypt:evp_enc.c:438:
# openssl aes-128-cbc -d -salt -in test.txt.aes -out test.txt.out
enter aes-128-cbc decryption password :<輸入正確密碼>
- 檢視解密前後的檔案大小, 和加密前是一樣的
# ll test.txt*
-rw-r--r-- 1 root root 9 Aug 11 15:42 test.txt
-rw-r--r-- 1 root root 32 Aug 11 15:43 test.txt.aes
-rw-r--r-- 1 root root 9 Aug 11 15:45 test.txt.out
- 檢視解密前後的檔案內容, 和加密前是一樣的
# cat test.txt.out
test測試
這種方法非常適合Linux下的檔案內容保密, 呵呵….以上命令加引數比較複雜, 我們可以把命令加引數做個函式, 然後放到.bash_profile裡, 這樣每次登陸後直接使用函式即可, 如下:
function encryption()
{
/usr/bin/openssl aes-128-cbc -salt -in $1 -out $1.aes && rm -f $1
}
function decryption()
{
/usr/bin/openssl aes-128-cbc -d -salt -in $1.aes -out $1 && rm -f $1.aes
}
然後就可以如下使用了(注意輸入引數都是原檔名, 且會自動刪除原檔案):
# encryption test.txt
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
# decryption test.txt
enter aes-128-cbc decryption password:
# ll test.txt*
-rw-r--r-- 1 root root 9 Aug 11 15:46 test.txt
-rw-r--r-- 1 root root 9 Aug 11 15:45 test.txt.out
--End--
OpenSSL進行RSA加密解密-非對稱加密
RSA是一個非對稱加密演算法。簡單地說,非對稱加密演算法就是說加密解密一個檔案需要兩個金鑰,一個用來加密,為公鑰,一個用來解密,為私鑰。證書可以用來授權公鑰的使用。
介紹下Linux平臺下openssl工具的簡單使用:
- 1、生成一個金鑰:
openssl genrsa -out test.key 1024
這裡-out指定生成檔案。需要注意的是這個檔案包含了公鑰和私鑰兩部分,也就是說這個檔案既可用來加密也可用來解密。後面的1024是生成金鑰的長度。
- 2、openssl可以將這個檔案中的公鑰提取出來:
openssl rsa -in test.key -putout -out test_pub.key
-in指定輸入檔案,-out指定提取生成公鑰的檔名。至此,我們手上就有了一個公鑰,一個私鑰(包含公鑰)。現在可以用公鑰來加密檔案了。
- 3、在目錄中建立一個hello的文字檔案,然後利用此前生成的公鑰加密檔案:
openssl rsautl -encrypt -in hello -inkey test_pub.key -pubin -out hello.en
-in指定要加密的檔案,-inkey指定金鑰,-pubin表明是用純公鑰檔案加密,-out為加密後的檔案。
- 4、解密檔案:
openssl rsautl -decrypt -in hello.en -inkey test.key -out hello.de
-in指定被加密的檔案,-inkey指定私鑰檔案,-out為解密後的檔案。
OpenSSl命令列工具驗證數字簽名:
一、傳送方A:
生成私鑰:
OpenSSL> genrsa -passout pass:123456 -out apri.pem 1024
生成公鑰:
OpenSSL> rsa -passin pass:123456 -pubout -in apri.pem -out apub.pem
用B的公鑰加密資料:
OpenSSL> rsautl -encrypt -pubin -inkey bpub.pem -in data.txt -out edata.txt
計算資料的訊息摘要:
OpenSSL> dgst -sha1 -out md.txt data.txt
用A的私鑰給訊息摘要簽名:
OpenSSL> rsautl -sign -inkey apri.pem -in md.txt -out signature.bin
將edata.txt和signature.bin傳送給接收方B
二、接收方B
生成私鑰:
OpenSSL> genrsa -passout pass:654321 -out bpri.pem 1024
生成公鑰:
OpenSSL> rsa -passin pass:654321 -pubout -in bpri.pem -out bpub.pem
用B的私鑰解密資料:
OpenSSL> rsautl -decrypt -inkey bpri.pem -in edata.txt -out data.txt
計算data.txt的資訊摘要:
OpenSSL> dgst -sha1 -out ms2.txt data.txt
用A的公鑰解密數字簽名:
OpenSSL> rsautl -verify -pubin -inkey apub.pem -in signature.bin -out ms3.txt
最後比較:ms2.txt 和ms3.txt內容完全相同:
SHA1(data.txt)= ad6910d33d5f96cbd7b9b3378107b8b04ba1c138
相關推薦
[svc]openssl對稱加密,非對稱加密最佳實戰
OpenSSL進行aes加密解密-對稱加密 建立檔案test.txt, 特意寫入中英文 # cd /tmp # echo "test測試" > test.txt 開始加密, 使用aes-128-cbc演算法, 也可以使用其他演算法
[svc]對稱加密/非對稱加密細枝末節-如何做到數據傳輸的authentication/data integrity/confidentiality(私密)
ecc 數據完整性 安全 post 數字簽名 .html 模式 數字證書 大量 對稱/非對稱/混合加密的冷知識 數據在互聯網上傳輸,要考慮安全性. 講到安全,要從三方面考慮: 1、authentication 每一個IP包的認證,確保合法源的數據 2、data integ
php使用openssl來實現非對稱加密
使用非對稱加密主要是藉助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。 1.安裝openssl和php的openssl擴充套件 2.生成私鑰:openssl genrsa 用於生成rsa私鑰檔案,生成是可以指定私鑰長度和密碼保護 openssl g
對稱與非對稱加密
針對加密方式劃分為 對稱加密和非對稱加密 對稱加密:使用唯一祕鑰對資料進行加解密,其主要特點為速度快、使用方便、適合對大資料量進行加解密操作;主要缺點也比較明顯,需要事先約定祕鑰,當雙方通訊時就涉及到該祕鑰的交換,存在被截獲風險。 Aes演算法:將資料劃分為區塊,每個區塊
什麼是非對稱加密?非對稱加密概念
什麼是非對稱加密 對稱加密演算法在加密和解密時使用的是同一個祕鑰;而非對稱加密演算法需要兩個金鑰來進行加密和解密,這兩個祕鑰是公開金鑰(public key,簡稱公鑰)和私有金鑰(private key,簡稱私鑰) 與對稱加密演算法不同,非對稱加密演算法需要兩個金鑰:
Git基本命令-遠端 以及 對稱和非對稱加密區別
git 基本命令 引擎 程式碼在本地提交,可以實現版本回退和前進。但是如果本地磁碟損壞,程式碼丟失,所以 我們要把程式碼往另一臺電腦(遠端伺服器)存一份。好像網盤。實現程式碼在不同客戶端 (電腦、筆記本、手機)拷貝下載程式碼,提交程式碼到遠端伺服器。 ssh 非對稱加密 ss
JAVA實現RSA加密,非對稱加密演算法
RSA.java package org.icesnow.jeasywx.util.security; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair;
對稱加密 非對稱加密 不可逆加密演算法
根據金鑰型別不同可以將現代密碼技術分為兩類:對稱加密演算法(私鑰密碼體系)和非對稱加密演算法(公鑰密碼體系)。 1 對稱加密演算法中,資料加密和解密採用的都是同一個金鑰,因而其安全性依賴於所持有金鑰的安全性。 對稱加密演算法的主要優點是加密和解密速度快,加密強度高,且演算法公開. 缺點是實現金鑰的祕密分發困
Java對稱與非對稱加密解密,AES與RSA
加密技術可以分為對稱與非對稱兩種. 對稱加密,解密,即加密與解密用的是同一把祕鑰,常用的對稱加密技術有DES,AES等 而非對稱技術,加密與解密用的是不同的祕鑰,常用的非對稱加密技術有RSA等 為什麼要有非對稱加密,解密技術呢 假設這樣一種場景A要傳送一段訊息給B,但是又
理論:HTTPS,TLS,SSL,TCP,UDP,對稱加密,非對稱加密
HTTP:傳輸web內容的協議,軟水管(公開透明) TLS/SSL:不鏽鋼管 HTTPS:HTTP套上SSL,軟水管套上不鏽鋼管 TCP:傳輸層協議,HTTP基於TCP,面向連線 UDP:傳輸層協議,先傳不一定先到,面向非連線 對稱加密:加密和解密使用
對稱加密/非對稱加密/簽名演算法
對稱加密: 對稱加密是指,加密方和解密方使用同樣的祕鑰來進行加密和解密。 常用對稱加密: 1. DES演算法 DES演算法的入口引數有三個:Key、Data、Mode。其中Key為8個位元組共64位,是DES演算法的工作金鑰;Data也為8個位元組64位,是要被加密或被
資料傳輸加密——非對稱加密演算法RSA+對稱演算法AES(適用於java,android和Web)
本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 資料傳輸加密 在開發應用過程中,客戶端與服務端經常需要進行資料傳輸,涉及到重要隱私資訊時,開發者自然會想到對其進行加密,即使傳輸過程中被“有心人”擷取,也不會將資訊洩露。對於加密
Http協議與請求, Post請求與Get請求的區別,Base64和URL編碼,md5,sha-1加密,對稱和非對稱加密,支付寶微信第三方支付
Http協議與請求 Post請求 Post請求與Get請求的區別 Get請求的引數是直接放在url後面的,而Post請求是放在請求體中的 Get請求引數的長度會根據瀏覽器的不同實現有一定限制,而Post請求引數長度沒有限制
數字摘要,對稱加密,非對稱加密,數字簽名,數字證書
數字摘要 數字摘要也稱訊息摘要,由一個單向hash函式對一段訊息進行計算產生,不同的明文生成的密文總是不同的,而同樣的明文的密文一定相同。 訊息摘要能夠驗證訊息的完整性:如果訊息在傳遞的途
軟考之數字簽名 對稱加密 非對稱加密
/*如有不對 概不負責*/ 首先 對稱加密:是指加密解密使用的金鑰都是一樣的,對稱加密也稱為 私鑰密碼體制。大概在實際生活中就是 你有一個訊息要發給一個人類,你用對稱加密後發給他,然後你們事先肯定得約定好這個金鑰是什麼,然後他就用這個金鑰解開。這個金鑰肯定不能公開,所以
Java進階 八 Java加密技術之對稱加密 非對稱加密 不可逆加密算法
歐洲 再次 div 數據安全 識別 交易 standard 計算 領域 對稱加密 非對稱加密 不可逆加密算法 根據密鑰類型不同可以將現代密碼技術分為兩類:對稱加密算法(私鑰密碼體系)和非對稱加密算法(公鑰密碼體系)。 1 對稱加密算法 原理 對稱加密算法中,數據
SpringCloud-分散式配置中心【加密-非對稱加密】
案例程式碼:https://github.com/q279583842q/springcloud-e-book 非對稱加密 一、什麼是非對稱加密(Asymmetric encryption) 二、Java-keytool 使用說明 非對稱加密我們需要生成對應的公鑰和私鑰,jdk中提供的有java-
對稱和非對稱加解密
32位 tro 進行 ont 什麽 金融 被鎖 方式 str 對稱 DES: DES算法 再大多運用在 如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認證、金融交易數據包的MAC校驗等領域 DES算法的入口參數有三
密碼學(對稱與非對稱密碼 雜湊演算法)
目錄 密碼學 密碼學發展 對稱加密體制 非對稱加密體制 混合加密 雜湊演算法 數字簽名過程 密碼學的應用--網站認證 密碼學 密碼學發展 古典密碼:古代----19世紀末 近代密碼:20世紀初---1949年 現代密碼:1949(夏農
密碼學(對稱與非對稱密碼)
目錄 密碼學 密碼學發展 雜湊演算法 密碼學 密碼學發展 古典密碼:古代----19世紀末 近代密碼:20世紀初---1949年 現代密碼:1949(夏農發表的《保密系統的加密原理》)---1975 公鑰密碼:1976(W.Diffie和M.Hell