一.OpenSSL的機理
1.openssl軟件包包含三個組件:
- libcrypto:實現加密的,它是一個庫文件,可以被別的服務所調用。
- libssl:提供ssl支持的。建立ssl會話的。
- openssl:多功能的命令行工具。手動實現加密解密,生成證書,簽發證書。
2.目前在Linux上能實現對稱加密的工具有兩個:
- gpg (3DES,CAST5,Blowfish)
- openssl enc
openssl支持的子命令非常的多:
ca:生成證書。
enc:實現加密的。
genrsa:生成rsa密鑰對。
二.查看OpenSSL的版本信息
- 使用選項:version
2.查看詳細信息:-a
三.查看OpenSSL所支持的參數:
ciphers
四.測試速度
測試OpenSSL某一加密算法速度:speed
注:如果不指明,它將計算其下的所有加密算法的速度。
五.加密的使用
- 對稱加密
OpenSSL對文件加密
格式:
-des3:表示一種算法。
-salt:表示送去一個隨機值。
-in :要加密的文件。
-out:加密後的文件。
例如:對fstab加密
注:因爲是對稱加密,所以還有輸入密碼。
加-d就表示解密
我們diff命令對比一下加密前的文件和解密後的文件有什麼不同沒有。
注:沒有結果,表示文件時一致的。
2.單項加密
單向加密的算法有:
格式:
dgst:讓OpenSSL支持單向加密。
-sha1:一種單向加密算法。
- md5sum的使用方法:md5sum +文件名
注:因爲fstab和fstab2文件一樣,所以他們提取特徵碼的加密結果是一樣的。
- sha1算法
注:兩次的結果是一樣的。第一種是直接使用sha1算法,第二種是通過OpenSSL使用sha1算法的。
- OpenSSL還有一種簡單用法
注:結果和前邊的一樣的。
- 用OpenSSL生成用戶密碼。
注:-1表示都是使用MD5算法,只要輸入的密碼一樣,雖然結果不一樣,但都是表示同意密碼,可以相互替換的。
它的加密結果之所以不一樣是因爲這樣算法加入了隨機數。