最近工作中用到数据包加解密,特整理如下:
1 加密算法的分类
对称加密,非对称加密,Hash算法
对称加密:加密和解密的密钥相同,例如DES AES
非对称加密:即公钥加密。公钥公开,用于加密;私钥保存用于解密。从公钥到私钥的过程是不可逆的。
例如RSA DSA(数字签名)
HASH 算法:HASH算法是一种单向算法,通过特定HASH算法可以对原始数据生成特定的HASH值数据,但是反向不可逆的;
例如MD5 ,主要用于密码存储。例如各大型门户网站存储的用户密码的数据形式应该是HASH算法之后的形式。
2 各类算法的优缺点
对称加密:加解密速度快 密钥管理困难 主要用于大数据量的加密
非对称加密:密钥管理方便 加解密速度慢 主要用于密钥交互密钥的管理
通常是对称加密、非对称加密、Hash算法解密相结合:
例如 某流行IM软件的全流程加密过程:
登录过程:客户端到服务器交互用户的信息:(设备型号,密码MD5值,版本信息等)用的RSA 1024位加密)用于用户信息的验证
服务器到客户端的回应信息:(后续数据交互过程加解密的KEY) 采用的是AES 128 位 KEY 是 密码MD5 后前16个字符
数据交互过程:采用的AES 128位加密 解密KEY: 登录过程中服务器到客户端回应信息中包含的KEY。
此全流程数据的加密是三类加密算法的完美结合,也是一种非常完美的IM类软件的加解密方案。可以做为其他IM类软件解密方案模板。
|