常见的加密类型及其算法
加密类型 |
使用算法 |
基本特性 |
对称加密 |
DES(数据加密标准,56位密钥)、 AES(高级加密标准,128位密钥)、 3DES、Blowfish、Twofish、CAST5、IDEA、RC6 |
加密、解密使用同一个密钥 通常用来加密数据,加解密速度快 密钥过多,管理密钥困难 密钥交换困难 |
加密:# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext 常用选项:
解密:# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab.plaintext 常用选项:
|
||
公钥加密 (非对称加密) |
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种算法
CRC-32:提取数据特征码 CBC-MAC、HMAC:消息认证算法 |
只能加密,不能解密,整个过程不可逆 通常用来提取数据特征码(数据指纹),验证数据的完整性 定长输出:无任输入数据多长,只要使用同一种单向加密算法,输出结果的长度都相同 雪崩效应:输入数据的微小改变,会导致结果的巨大变化 使用不同加密工具单向加密同一文件,只要加密算法一样,输出的消息摘要信息都一样 |
# openssl dgst -md5 | -sha1 fstab [-out FILENAME] # md5sum | sha1sum | sha224sum | sha256sum | sha384sum | sha512sum fstab |