简介:常见的对数据进行加密,解密算法分为以下几类
1)单向加密算法
2)对称加密算法
3)非对称加密算法
一.单向加密算法
这种算法,只能加密,不能解密,是不可逆的,所以叫做单向加密算法(摘要算法),这种算法通常被用作对数据签名
1.md5
摘要算法是一个不可逆过程,无论多大数据,经过算法运算厚都是生成固定长度的数据,一般结果使用16进制进行显示。
MD5的前身有MD2,MD3和MD4.
MD5算法具有以下特点:
1.压缩性:任意长度的数据,算出的md5值长度都是固定的(输出128字节)
2.容易计算:从原数据计算出md5值很容易
3.抗修改性:对原数据进行任何改动,哪怕只修改一个字节,所得到md5值都是很大区别
4.强抗碰撞:已知原数据和其MD5值,除了暴力找不到相同的MD5
2.SHA
原理同MD5一样,相比MD5更安全,sh1基于md5,加密后的数据长度更长产生长度160字节的散列值
SHA家族有五个算法:SHA1,SHA-224,SHA-256,SHA-384,SHA-512.后四种又称作SHA2
二.对称加密
对称加密:是指加密和解密使用密钥的加密算法
在对称加密算法中,数据发送方将明文和加密密钥一起经过算法处理后,使其变成复杂的密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。
在大多数的对称算法中,加密密钥和解密密钥是相同的,所以它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,密钥泄漏意味着消息有被解密的风险,所以密钥的保密性对通信的安全性至关重要。
常用算法:
DES(Data Encryption Standard)数据加密标准:JDK实现的算法密钥长度为56位
3DES:三重DES,JDK实现的算法密钥长度为112和168,默认168位。
AES:代替DES的算法,目前使用最多的对称加密算法,官方并未报告被破解。AES 通常用于移动通信系统加密以及基于SSH协议的软件。JDK实现的AES密钥长度有128,192,256,默认128位。
此外还有 TDEA算法,Blowfish算法,RC5算法,IDEA算法,PBE算法等,目前使用 3DES 和 AES 较为广泛。
https://wenku.baidu.com/view/84e98e7beefdc8d377ee321f.html
三.非对称加密
https://blog.csdn.net/wzzvictory/article/details/9015155