在Linux環境下使用OpenSSL對訊息和檔案進行加密
在Linux環境下使用OpenSSL對訊息和檔案進行加密
1.簡介
OpenSSL是一款功能強大的加密工具包。我們當中許多人已經在使用OpenSSL,用於建立RSA私匙或證書籤名請求(CSR)。不過,你可曾知道可以使用OpenSSL來測試計算機速度?或者還可以用它來對檔案或訊息進行加密?本文將介紹幾個簡單易學的技巧,教你如何使用OpenSSL對訊息和檔案進行加密。
【相關推薦】:網路安全工具百寶箱
2.對訊息進行加密和解密
首先,我們不妨對簡單的訊息進行加密。下面這個命令將使用Base64編碼方法(Base64 Encoding),對"Welcome to LinuxCareer.com"(歡迎訪問LinuxCaeer.com)這個訊息進行加密:
$ echo "Welcome to LinuxCareer.com" | openssl enc -base64
V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K
上述這個命令的輸出是一個經過加密的字串,含有已經過編碼的訊息"Welcome to LinuxCareer.com"。想對經過編碼的字串進行解密,恢復成原始訊息,我們就要顛倒順序,加上-d選項,進行解密:
$ echo "V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K" | openssl enc -base64 -d
Welcome to LinuxCareer.com
上述加密易於使用,不過它缺少密碼的一個重要特性,這個重要特性應該可用於加密。比如說,試著用密碼"pass"對下列字串進行解密:
U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj
為此,就要再次使用OpenSSL,這回帶-d選項和編碼方法aes-256-cbc:
echo "U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj" | openssl
enc -aes-256-cbc -d -a
你恐怕已經猜想到了,要像上面那樣用密碼建立經過加密的訊息,可以使用下面這個命令:
$ echo "OpenSSL" | openssl enc -aes-256-cbc -a enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX185E3H2me2D+qmCfkEsXDTn8nCn/4sblr8=
如果你想把OpenSSL的輸出儲存到檔案中,而不是儲存到STDOUT,只要使用STDOUT重定向">"。將經過加密的輸出儲存到檔案中時,你還可以刪去-a選項,因為不再需要輸出是基於ASCII文字的:
$ echo "OpenSSL" | openssl enc -aes-256-cbc > openssl.dat
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
$ file openssl.dat
openssl.dat: data
想對openssl.dat檔案進行解密,恢復至原始訊息,請使用:
$ openssl enc -aes-256-cbc -d -in openssl.dat
enter aes-256-cbc decryption password:
OpenSSL
3.對檔案進行加密和解密
想使用OpenSSL對檔案進行加密,其實就跟對訊息進行加密一樣簡單。唯一的區別在於,我們不是使用echo命令,而是使用-in選項,後面跟以我們想進行加密的實際檔案,並使用-out選項,這會指令OpenSSL將經過加密的檔案儲存到某個名稱的檔案中:
$ openssl enc -aes-256-cbc -in /etc/txt.log -out /etc/txt.log
想對我們的服務檔案進行解密,恢復成原樣,請使用:
$ openssl enc -aes-256-cbc -d -in /etc/txt.log > /etc/txt.log
enter aes-256-cbc decryption password:
4.對目錄進行加密和解密
萬一你需要使用OpenSSL對整個目錄進行加密,首先需要建立gzip打包檔案(tarball),然後用上述方法對該打包檔案進行加密,也可以使用pipe,同時完成這兩項任務:
# tar cz /etc | openssl enc -aes-256-cbc -out etc.tar.gz.dat
tar: Removing leading `/' from member names
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
想對整個etc/目錄進行解密,並提取到當前的工作目錄,請使用:
# openssl enc -aes-256-cbc -d -in etc.tar.gz.dat | tar xz
enter aes-256-cbc decryption password:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29065182/viewspace-1170998/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Linux下ssh 環境的登入 和 檔案拷貝Linux
- Linux環境下如何升級openssl?Linux
- openssl加密檔案加密
- 在linux系統中對檔案進行分割Linux
- linux環境下使用jmeter進行分散式測試LinuxJMeter分散式
- PyTorch環境下對BERT進行finetunePyTorch
- 使用openssl在windows 10下本地xampp配置https開發環境WindowsHTTP開發環境
- OpenSSL 使用AES對檔案加解密解密
- 在Linux中,如何理解加密工具?如GnuPG和OpenSSL。Linux加密
- 【CORE】在UNIX環境下從核心檔案獲取堆疊資訊
- Linux下如何對目錄中的檔案進行統計Linux
- 在Linux下檢視和修改環境變數Linux變數
- Linux或者國產OS下使用HHDESK進行檔案管理Linux
- 在Linux使用虛擬環境Linux
- 如何使用diff 和 patch 命令對檔案進行協作?
- 如何在 Linux下進行檔案切割操作?Linux
- Linux環境下:程式的連結, 裝載和庫[ELF檔案詳解]Linux
- window環境的openssl二進位制發行版安裝
- C#如何使用HttpClient對大檔案進行斷點上傳和下載C#HTTPclient斷點
- Windows 下如何使用 Linux 環境開發 PHP 專案!WindowsLinuxPHP
- 簡單安裝PHP在Linux下的執行環境PHPLinux
- 專案開發中,如何使用eolinker進行環境管理:開發、測試和生產環境
- linux下如何使用檔案來模擬硬碟進行ASM測試Linux硬碟ASM
- [譯] 最佳安全實踐:在 Java 和 Android 中使用 AES 進行對稱加密JavaAndroid加密
- WINDOWS下對NIGNX日誌檔案進行限制Windows
- Linux 環境下 PHP 專案基礎執行環境搭建(PHP 7.3.6 + MySQL 8.0.16 + Nginx)LinuxPHPMySqlNginx
- Linux 下的程式間通訊:使用管道和訊息佇列Linux佇列
- 使用scp命令在多個Linux系統間進行檔案複製Linux
- 在Dubbo-go中使用TLS加密進行安全通訊GoTLS加密
- WIN7環境使用 windows訊息列隊Win7Windows
- Linux下實現 OpenSSL 簡單加密與解密字串Linux加密解密字串
- 在linux下使用Apache搭建檔案伺服器LinuxApache伺服器
- 在雲環境上使用SLF4J對Java程式進行日誌記錄Java
- Windows環境下實現批量執行Sql檔案勒鴛WindowsSQL
- 《關於在windows下使用sail開發環境這檔事》WindowsAI開發環境
- 對於重要的資料檔案,用什麼方法進行加密?加密
- 如何進行Linux下檔案編碼格式轉換Linux
- linux下使用vscode和makefile搭建C++開發環境LinuxVSCodeC++開發環境
- yapi 在linux環境下的安裝部署APILinux