openssl:
秘鑰證書管理、對稱加密和非對稱加密
openssl:多用途的命令列工具,包括openssl,可以執行互動或批量命令。
libcrypto:加密演算法庫,包括openssl-libs。
libssl:加密模組應用庫,實現ssl以及tls,包nss。
加密密令
工具:openssl enc,gpg
演算法:3des、aes、blowfish、twofish等
常用選項:
-in filename :指定要加密的檔案存放路徑
-out filename:指定加密後的檔案存放路徑
-salt 自動插入乙個隨機數為檔案內容加密
-e 加密
-d 解密,可指定演算法。
-a/base64: 進行加解密時,只對資料進行計算,有時候需要進行base64轉換。
加解密演算法可以自己制定,可以通過openssl help enc 檢視
幫助:man enc
加密:openssl enc -e -des3 -a -salt -in testfile -out testfiler
解密:openssl enc -d -dec3 -a -salt -in testfiler -out testfile
對稱加密演算法:
共8中:(7中分組加密、1中流加密演算法)
7:aes、des、blowfish、cast、idea、rc2、rc5
都支援電子密碼本模式(ecb)、加密分組鏈結模式(cbc)、加密反饋模式(cfb)和輸出反饋模式(ofb)四種常用的分組密碼加密模式。
其中,aes使用的加密反饋模式(cfb)和輸出反饋模式(ofb)分組長度是128位,其它演算法使用的則是64位。
事實上,des演算法裡面不僅僅是常用的des演算法,還支援三個金鑰和兩個金鑰3des演算法。
1:rc4
非對稱加密演算法:
共4種(dh、rsa、dsa、橢圓曲線演算法ec)
dh演算法一般使用者金鑰交換。
rsa演算法既可以用於金鑰交換,也可以用於數字簽名,當然,如果你能夠忍受其緩慢的速度,那麼也可以用於資料加密。
dsa演算法則一般只用於數字簽名。
摘要命令
5種資訊摘要演算法:md2、md5、mdc2、sha(sha1)、ripemd
openssl還實現了dss1和dss
作用:1.作資訊完整性校驗
2.儲存密碼,有時候可以採用md5(真實密碼值儲存),有的還進行加驗處理,丟失只能重置,不可逆。
語句:openssl dgst
常用選項:
-md5|-md4|-md2|-sha|-mdc2|-ripemd160|-dssl 指定一種摘要演算法。
-out filename 將摘要內容儲存到指定檔案中
幫助:man dgst
openssl dgst -md5 [-hex預設16進製制] /path/somefile
openssl dgst -md5 testfile
mac :單向加密的一種延伸應用,用於實現網路通訊中保證所傳輸資料的完整性機制
生成密碼和base64
命令:passwd
openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table]
常用選項:
-1 使用md5加密演算法
-salt string : 加入隨機數,最多8為隨機數
-in file:對輸入檔案內容進行加密
-stdion: 對標準內容進行加密
生產隨機數
在ssl互動的時候要生隨機數。
命令: rand
openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num (num 是多少位的意思)
常用選項:
-out file:將生成的隨即數存入指定檔案中
-base64:使用base64進行編碼
-hex:使用16進製制編碼格式
生成金鑰對
先用genrsa標準命令生成私鑰,在用rsa標準命令生成公鑰。
genrsa用法:
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
常用選項:
-des|-dec3|-idea 演算法
numbits:生成私鑰大小,一般位2048
一般使用umask設定私鑰許可權,只能自己讀寫。
(umask 066;openssl genrsa -out 1.txt 4096;)
rsa用法:
openssl rsa [-inform pem|net|der] [-outform pem|net|der] [-in filename] [-passin arg] [-out filename] [-passout arg]
[-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
常用選項:
-pubout 根據私鑰提取公鑰
openssl rsa -in 1.txt -out 2.txt -pubout
小結
用私鑰給檔案簽名:
openssl pkeyutl -sign -in tos.txt -inkey key.pem -out tos.sig
用公鑰驗證簽名:
openssl pkeyutl -verify -in tos.txt -sigfile tos.sig -pubin -inkey pubkey.pem
用公鑰加密檔案:
openssl pkeyutl -encrypt -in tos.txt -pubin -inkey pubkey.pem -out tos.enc
用私鑰解密檔案:
openssl pkeyutl -decrypt -in tos.enc -inkey key.pem -out tos.dec
CocoaPods 簡單用法總結
2 需要修改更換源 由於國內被牆 要把源切換至 映象伺服器 gem source l檢視當前源 如果執行結果不是 此時需要更換源 更換源的命令列 gem update system gem uninstall rubygems update gem sources r gem sources a 替...
mysql的簡單用法 mysql簡單用法
刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...
STL容器的簡單用法總結
set 屬性 不允許元素重複,元素字典序排列,不提供下標操作符 宣告 seta 插入 a.insert b 遍歷 set iterator a it 迭代器是靜態的 for a it a.begin a it a.end a it cout a it 判斷是否是空 a.empty 元素個數 a.si...