openssl工具


openssl:

linux系統自帶的加密工具
官網:https://www.openssl.org/

包括三個組件

  • libcrypto:用於實現加密和解密的庫
  • libssl:用於實現ssl通信協議的安全庫
  • openssl:多用途命令行工具

Base64 編碼:

Base64是網絡上最常見的用於傳輸8Bit字節碼的編碼方式之一,Base64就是一種基於64個可打印字符來表示二進制數據的方法

base64的編碼過程如下:

  • 將每3個字節放入一個24位的緩沖區中,最后不足3個字節的,緩沖區的剩余部分用0來填補。然后每次取出6位(2的6次方為64,使用64個字符即可表示所有),將高2位用0來填充,組成一個新的字節,計算出這個新字節的十進制值,對應上面的編碼表,輸出相應的字符。這樣不斷地進行下去,就可完成對所有數據的編碼工作

openssl命令:

兩種運行模式:

  • 交互模式
  • 批處理模式

三種子命令:

  • 標准命令
  • 消息摘要命令
  • 加密命令

openssl命令對稱加密:

工具:

openssl enc、gpg

算法:

3des, aes, blowfish, twofish

enc子命令:

幫助:man enc
例:
openssl enc -e -des3 -a -in red -out red.xx
openssl enc -e -des3 -a -in red.xx

openssl命令單向哈希加密:

工具:

openssl dgst、md5sum、sha1sum等

算法:

md5sum, sha1sum, sha224sum,sha256sum…

dgst子命令:

幫助:man dgst
MAC:

Message Authentication Code,單向加密的一種延伸應用,用於實現網絡通信中保證所傳輸數據的完整性機制

HMAC:

hash-based MAC,使用md5或sha1算法

例:
openssl md5 fstab
openssl sha512 fstab
sha256sum red

openssl命令生成用戶密碼:

#sha512加密,標准輸入讀取,-salt加鹽
echo 123456|openssl passwd -6 -salt qwert134 -stdin		

openssl passwd -6 -salt qwert134 123456
useradd -p `echo 123456|openssl passwd -6 -salt Y16DiwuVQtL6XCQK -stdin` hj

openssl命令生成隨機數:

隨機數生成器:偽隨機數字,利用鍵盤和鼠標,塊設備中斷生成隨機數

隨機數生成方法:

  • /dev/random:僅從熵池返回隨機數;隨機數用盡,阻塞
  • /dev/urandom:從熵池返回隨機數;隨機數用盡,會利用軟件生成偽隨機數,非阻塞
例:
openssl rand -base64 9		#可用於隨機密碼
openssl rand -hex 9
#特別生成辦法:用tr隨機,取前30再mdk5加密
tr -dc '[:alnum:]' < /dev/urandom|head -c10	
tr -dc 'a-zA-Z0-9' < /dev/urandom|head -c10

openssl命令實現 PKI:

公鑰加密:

算法:

RSA, ELGamal

工具:

gpg, openssl rsautl(man rsautl)

數字簽名:

算法:

RSA, DSA, ELGamal

密鑰交換:

算法:

dh
DSA:Digital Signature Algorithm
DSS:Digital Signature Standard
RSA

生成私鑰:

openssl genrsa -out 路徑 [-des3] [加密位數,默認2048]
例:
openssl genrsa -out a.key 2048
openssl genrsa -out app2.key -des3 2048		#給私鑰加密

從私鑰提取公鑰:

openssl rsa -in a.key -pubout -out a.pub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM