什么是加密?
在密码学中,加密是将明文信息改变为难以读取的密文内容,使之不可读。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。
加密的方法称之为加密算法。
加密算法分类
-
对称加密算法
加密和解密使用的是同一个秘钥。
-
非对称加密算法
加密和解密使用的不是同一个秘钥。公钥加密就得用私钥解密。
常见的对称加密算法
DES
美国加密数据标准算法,明文按照64位进行分组,秘钥长64位。密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。了解更多
3DES
3DES (Triple DES)三重数据加密数据块算法。相当于对每个数据快进行三次DES加密。由于计算机计算能力的提升,DES算法容易被破解,3DES是通过增加数据块密钥的长度,来增加暴力破解的难度,而不是一种全新的加密算法。
AES
AES (Advance Encryption Standard)高级加密标准,在密码学中又称为Rijndael 算法,是美国联邦政府采用的一种区域块加密标准。这个标准为了替代原先的DES标准,2001有NIST发布,并与2002年5月26日成为标准。了解更多
RC2/RC4
RC2/RC4 ,RC2和RC4由RSA数据安全公司的里维斯特(RonRivest)设计,是两种可变密钥长度的加密算法,而且都是RSA数据安全公司的专有算法。有关两种算法的细节尚未公开披露。RC2是一种可变密钥长度的对称分组密码,打算作为DES的一种代替物。它以64比特分组加密数据。据公司声称,RC2软件实现的速度为DES的两倍。Rc4是一种可变密钥长度的对称流密码。据公司声称.其速度为DES的10~100倍。两种算法的编码规模非常紧凑,其速度与密钥长度无关。
常见的非对称加密算法
RSA
RSA 是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。了解更多
ECC
ECC (Elliptic Curves Cryptography)椭圆曲线加密算法,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。
DSA
DSA (Digital Signature Algorithm)数字签名算法,是Schnorr和EIGamal 签名算法的变种,被美国NIST称作标准的数字签名标准(DSS, Digital Signature Standard), 严格来说不算加密算法。通常用于签名,而不用做加密。
哈希算法
哈希(Hash)和加密(Encrypt)区别
哈希是把目标文本转换为具有相同长度、不可逆的杂凑字符串(消息摘要)。
加密是指把目标文件转换为长度不同、可逆的密文。详细介绍
常见的哈希算法
MD5
MD5 (Message Digest Algorithm5) 消息摘要算法第五版,是RSA公司研发的一种单向散列算法,非可逆,相同的明文产生相同的密文。常用于信息一致性验证;数字签名;安全访问认证等。
特性:
- 压缩性:任意长度的数据,算出的MD5值长度都是固定的。128位的MD5散列被表示为32位16进制数字;
- 容易计算:从原数据计算出MD5值很容易;
- 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别;
- 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
SHA1
SHA 1(Secure Hash Algorithm) 可以对任意长度的数据运算生成一个160位的数值。主要适用于数字签名标准里定义的DSA算法。对于长度小于2^64位的消息,SHA-1 会产生一个160位的消息摘要。
特性:不可以从消息摘要中复原信息;
MD5与SHA1都是Hash算法,两个相比。MD5输出是128位的,SHA1输出是160位的,MD5比SHA1快,SHA1比MD5强度高。
参考资料: