MD5:
实质上,MD5 只是一种哈希算法
特点:
1、针对不同长度待加密的数据、字符串等等,其都可以返回一个固定长度的MD5加密字符串。(通常32位的16进制字符串);
2、其加密过程几乎不可逆,除非维护一个庞大的Key-Value数据库来进行碰撞破解,否则几乎无法解开。
3、运算简便,且可实现方式多样,通过一定的处理方式也可以避免碰撞算法的破解。
4、对于一个固定的字符串。数字等等,MD5加密后的字符串是固定的,也就是说不管MD5加密多少次,都是同样的结果。
作用:
①一致性检验
②数字签名。只是把md5看出了一个指纹,按了个手印说明独一无二了。
③安全访问认证,这个就是平时系统设计的问题了。
在用户注册时,会将密码进行md5加密,存到数据库中。这样可以防止那些可以看到数据库数据的人,恶意操作了。
AES:
AES 是对称加密算法,优点:加密速度快;缺点:如果秘钥丢失,就容易解密密文,安全性相对比较差
对称加密
对称加密 : 也就是加密秘钥和解密秘钥是一样的。
非对称加密 : 也就是加密秘钥和解密秘钥是不一样的。
特点:
1、在AES标准规范中,分组长度只能是128位,密钥的长度可以使用128,192,258位
2、其加密过程可逆
3.加密和解密使用的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合
缺点:
密钥只有一个,加密和解密使用同一个密钥;
长度与明文大致相同;
相比非对称加密速度很快;
安全性较非对称加密弱;
如果存在很多用户,那么相比非对称加密需要维护大量的密码,不利于管理;
要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥。直接的面对面协商可能是不现实而且难于实施的,所以双方可能需要借助于邮件和电话等其它相对不够安全的手段来进行协商;
对称加密算法一般不能提供信息完整性的鉴别。它无法验证发送者和接受者的身份。
所以,在实际生产中,一般是通过RSA加密AES的密钥,传输到接收方,接收方解密得到AES密钥,然后发送方和接收方用AES密钥来通信。