随着互联网的快速发展,它已经成为了我们生活中不可或缺的一部分。与此同时,拥有一个安全的互联网环境成为了我们每个人心声。目前在公司里边所做的事情,也涉及到了加密解密这一块的东西,之前没有怎么接触过,所以这一次系统地过一下常见的加密解密都有哪些,不求深入,只求有一个大致的了解。
- 对称/非对称 加密
- 哈希加密及其破解方法
1. 对称/非对称 加密
对称密钥加密(英语:Symmetric-key algorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。实务上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通讯联系。与公开密钥加密相比,要求双方取得相同的密钥是对称密钥加密的主要缺点之一。
信息转换过程可以描述为:
明文 <-> 密钥 <-> 密文
常见的对称加密算法有:
DES
、3DES
、AES
、Blowfish
、IDEA
、RC5
、RC6
。
特点:加密解密效率高
,速度快
,适合进行大数据量
的加解密。
公开密钥加密(英语:public-key cryptography,又译为公开密钥加密),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要一对密钥(其实这里密钥说法不好,就是“钥”),一个是私人密钥,另一个则是公开密钥。这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。
常见的非对称加密算法有:
RSA
、DSA
、ECC
特点:算法复杂
,加解密速度慢
,但安全性高
,一般与对称加密结合使用(对称加密对内容加密,非对称对对称所使用的密钥加密)
2. 哈希加密及其破解方法
哈希算法的特性:
哈希(Hash)算法是一种单向密码体制,即只有加密过程,没有解密过程。
相同输入经过同一哈希函数得到相同散列值,但并非散列值相同则输入结果相同。
哈希加密算法:
哈希算法应用于加密学,将加密学领域的哈希算法称为哈希加密算法,常见的如上面提到的MD5,SHA-系列算法,每种哈希加密算法,均通过某种哈希函数进行迭代,将任意长度的消息输入,经过压缩生成“消息摘要”( MessageDigest)。
哈希加密算法的过程:
预处理(Preprocessing):消息填充、将消息分割成m个处理块、为哈希设置初始化值
哈希计算(HashComputation):将预处理完成的数据生成消息摘要,利用对应的哈希函数、相关常熟生成哈希值(即散列值、摘要信息)。
每种哈希加密算法根据初始化参数生成固定长度的摘要信息,例如SHA-256生成的摘要信息长度为128位。越长安全性越高。
常见哈希加密算法有:MD5
、SHA-1
、SHA-2
、SHA-256
、SHA-X(系列)
此外还有一种哈希加密算法的扩展算法:哈希加盐算法
我们可以通过在密码中加入一段随机字符串再进行哈希加密,这个被加的字符串称之为盐值。之所以要这样做,是为了增加加密的安全性,尽最大可能被破解。
破解哈希的常见方法:
- 暴力破解
- 字典破解(即 跑字典)
- 查表,反查表,跑彩虹表