密码学
简介
主要研究编制密码和破解密码
密码学的主要目的:研究如何把信息隐藏并且传递出去的一个学科
古典密码
替换法
单表替换
原文和密纹使用同一张表
多表替换
位移法
近代密码学
恩尼格码密码机
使用位移法和替换法,被图灵破解
现代密码学
对称加密
特点
加密速度快
密钥泄露会导致数据暴露
加密后找不到对应字符,出现乱码
一般结合base64使用
base64
Base64由64个字符组成,26个大写和26个小写字母,0-9,+/两字符组成,是一个可读性算法,不是加密算法,并不是为了保护数据,只是为了可读。
Base64原理,把三个字节变为四个字节,由原来的3字节每字节8bit转为四字节每字节6bit,高位补0,每字节6bit刚好把每组控制在0-63之间,不足三个字节的使用=号补足三字节为止
base58
没有数字0,没有大写字母O,没有大写I,没有小写l,没有+和/
加密模式
ECB
使用同一个key,分成相等的小段加密,然后组合到一起
可以并行处理,所以加密速度快
原文使用同一密钥加密后密文相同,安全性差
CBC
这种模式是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。
填充模式
NoPadding
不填充
DES加密算法下,要求原文必须为8字节的整数倍
AES加密算法下,要求原为必须为16字节的整数倍
PKCS5Padding
数据块的大小为8位,不足就填充
消息摘要
加密过程不需要密钥,无法被逆,只有输入相同的原文经过相同的消息摘要加密算法才能得到相同的密文。例如md5,sha1,sha256,sha512
非对称加密
密钥一般称为密钥对,一把公钥一把私钥,只能公钥加密私钥解密,或私钥加密公钥解密
RSA
ECC