文字记录,个人现阶段对加密概念的理解和工作使用心得。不具有加密技术的全面性归档和总结。如有出入请指教
1、解密数据分类,及差异
加密类型 | 使用算法 | 基本特性 | 应用枚举 |
对称加密 | DES(数据加密标准,56位密钥) AES(高级加密标准,128位密钥) 3DES、Blowfish、Twofish、CAST5、IDEA、RC6 | 加密、解密使用同一个密钥 通常用来加密数据,加解密速度快 密钥过多,管理密钥困难 密钥交换困难 | 加密:# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext 常用选项: |
非对称加密 | 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 |
2、个人使用总结
已使用:
对称加密:AES128
用着数据加密传输,加解密双方使用的同一个秘钥进行加解密。需要双方保证不泄露秘钥
单向加密:MD5128
常用于文件合法性校验,不用于数据加密、
未使用:
非对称加密,后续有机会再使用