加密算法:
- HASH 散列函数
- 不可逆!密码”识别”,文件”识别”
以下两种加密算法,都是可逆的!
* 明文 –> 加密 –> 密文
* 密文 –> 解密 –> 明文
- 对称加密 - 传统加密算法
- 加密和解密使用同一个”密钥”!
- 密钥的保密工作就非常的重要!! 密钥会定期更换!密钥的管理很重要!!
经典算法
- DES 数据加密标准(用的比较少,因为强度不够).
- 3DES 使用3个密钥,对相同的数据执行三次加密,强度增强.
- AES 高级加密标准,目前美国国家安全局使用AES加密,苹果的钥匙串访问就是使用
AES加密
两种加密方式!!ECB和CBC
ECB: 电子代码本,就是将一个数据拆分为多块,然后独立加密的!
终端命令:
$ openssl enc -des-ecb -K 616263 -nosalt -in xxx.xxx -out XXX.XXX 加密
$ openssl enc -des-ecb -K 616263 -nosalt -in xxx.xxx -out XXX.XXX -d 解密
$ xxd xxx.xxx 查看加密之后的文件
CBC: 密码块链,使用一个密钥和一个初始化"向量"对数据执行加密抓换
能保证密文的完整性,如果一个数据发生改变,后面所有的数据将会被破坏!
向量:某个方向的数量.
现代的密码学都和几何有关!因为几何(包含圆形\椭圆\球体)的变量是有规律的,但是结果是多变的!
- 非对称加密(RSA) - 现代加密算法
- 公钥\私钥
- 用公钥加密,私钥解密
- 用私钥加密,公钥解密