天天看點

常見的加密類型及其算法

加密類型

使用算法

基本特性

對稱加密

DES(資料加密标準,56位密鑰)、

AES(進階加密标準,128位密鑰)、

3DES、Blowfish、Twofish、CAST5、IDEA、RC6

加密、解密使用同一個密鑰

通常用來加密資料,加解密速度快

密鑰過多,管理密鑰困難

密鑰交換困難

加密:# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

常用選項:

-e:加密

-des3:加密資料時使用的算法,可用# openssl ? --> Cipher commands子指令中的各種其它算法代替

-a:對加密後的資料進行base64編碼,或解密前先對資料進行base64解碼

-salt:加鹽。加鹽後,相同的明文可以得到不同的密文。預設情況下,鹽值是随機生成的

-in FILENAME:指定要加密的檔案

-out FILENAME:指定加密後生成的檔案

解密:# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out  fstab.plaintext

-d:解密

公鑰加密

(非對稱加密)

RSA(既能用于加密,又能用于數字簽名)、

DSA(隻能用于數字簽名,不能用于資料加密)、

DH(一般用于密鑰交換)

密鑰成對出現

公鑰:public key,可公開給所有人

私鑰:private key,保證其私密性

使用公鑰加密的資料,隻能使用與之配對的私鑰解密

使用私鑰加密的資料,隻能使用與之配對的公鑰解密

通常用來身份認證(數字簽名),很少用來加密資料

身份認證:發送方使用自己的私鑰加密資料,接收方使用發送方的公鑰解密資料,如果解密成功,就能證明發送方的身份

資料保密性:發送方使用接收方的公鑰加密資料,接收方使用自己的私鑰解密資料,此方法能保證資料的保密性

# openssl genrsa -out ca.key 2048

# openssl req -new -key ca.key -out ca.csr

# openssl x509 -req -days 3650 -in ca.csr-signkey ca.key -out ca.crt

單向加密

MD5:消息摘要算法第五版,128位

SHA:安全雜湊演算法,包括如下5種算法

SHA-1:160位

SHA-2:

SHA-224:224位

SHA-256:256位

SHA-384:384位

SHA-512:512位

CRC-32:提取資料特征碼

CBC-MAC、HMAC:消息認證算法

隻能加密,不能解密,整個過程不可逆

通常用來提取資料特征碼(資料指紋),驗證資料的完整性

定長輸出:無任輸入資料多長,隻要使用同一種單向加密算法,輸出結果的長度都相同

雪崩效應:輸入資料的微小改變,會導緻結果的巨大變化

使用不同加密工具單向加密同一檔案,隻要加密算法一樣,輸出的消息摘要資訊都一樣

# openssl dgst -md5 | -sha1 fstab [-out  FILENAME]

# md5sum | sha1sum | sha224sum | sha256sum |  sha384sum | sha512sum fstab

      本文轉自Marion0728  51CTO部落格,原文連結:http://blog.51cto.com/qiuyue/1955775,如需轉載請自行聯系原作者

繼續閱讀