敲一天代码了,轻松下吧,精彩 !看人潮如海

时间:2022-05-06
本文章向大家介绍敲一天代码了,轻松下吧,精彩 !看人潮如海,主要内容包括一、数字摘要算法、2.SHA、二、对称加密、2. AES、三、非对称加密、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
先来首歌曲,耶耶耶.....

一边听歌,一遍来看几个算法

一、数字摘要算法

数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向 Hash 函数对消息进行计算而产生。如果消息在传递的途中改变了,接收者通过对收到消息采用相同的 Hash 重新计算,新产生的摘要与原摘要进行比较,就可知道消息是否被篡改了,因此消息摘要能够验证消息的完整性。消息摘要采用单向 Hash 函数将需要计算的内容”摘要”成固定长度的串,这个串亦称为数字指纹。这个串有固定的长度,且不同的明文摘要成密文,其结果总是不同的(相对的),而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是”真身”的”指纹”了。

1. Md5

MD5 即 Message Digest Algorithm 5(信息摘要算法 5),是数字摘要算法一种实现,用于确保信息传输完整性和一致性,摘要长度为 128 位。 MD5 由 MD4、 MD3、 MD2 改进而来,主要增强算法复杂度和不可逆性,该算法因其普遍、稳定、快速的特点,在产业界得到了极为广泛的使用,目前主流的编程语言普遍都已有 MD5 算法实现。

2.SHA

SHA 的全称是 Secure Hash Algorithm,即安全散列算法。 1993 年,安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准(FIPS PUB 180)公布, 1995 年又发布了一个修订版 FIPS PUB 180-1,通常称之为 SHA-1。 SHA-1 是基于 MD4 算法的,现在已成为公认的最安全的散列算法之一,并被广泛使用。SHA-1 算法生成的摘要信息的长度为 160 位,由于生成的摘要信息更长,运算的过程更加复杂,在相同的硬件上, SHA-1 的运行速度比 MD5 更慢,但是也更为安全。

二、对称加密

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,生成复杂的加密密文进行发送,数据接收方收到密文后,若想读取原文,则需要使用加密使用的密钥及相同算法的逆算法对加密的密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密,这就要求加密和解密方事先都必须知道加密的密钥。

1. DES 算法

1973 年,美国国家标准局(NBS)在认识到建立数据保护标准既明显又急迫的情况下,开始征集联邦数据加密标准的方案。 1975 年 3 月 17 日, NBS 公布了 IBM 公司提供的密码算法,以标准建议的形式在全国范围内征求意见。经过两年多的公开讨论之后, 1977 年 7 月 15 日, NBS 宣布接受这建议,作为联邦信息处理标准 46 号数据加密标准(Data Encryptin Standard),即 DES 正式颁布,供商业界和非国防性政府部门使用。DES 算法属于对称加密算法,明文按 64 位进行分组,密钥长 64 位,但事实上只有 56 位参与 DES 运算(第 8、 16、 24、 32、 40、 48、 56、 64 位是校验位,使得每个密钥都有奇数个 1), 分组后的明文和 56 位的密钥按位替代或交换的方法形成密文。由于计算机运算能力的增强,原版 DES 密码的密钥长度变得容易被暴力破解,因此演变出了 3DES 算法。 3DES 是 DES 向 AES 过渡的加密算法,它使用 3 条 56 位的密钥对数据进行三次加密,是 DES 的一个更安全的变形

2. AES

AES 的全称是 Advanced Encryption Standard,即高级加密标准,该算法由比利时密码学家 Joan Daemen 和 Vincent Rijmen 所设计,结合两位作者的名字,又称 Rijndael 加密算法,是美国联邦政府采用的一种对称加密标准,这个标准用来替代原先的 DES 算法,已经广为全世界所使用,已然成为对称加密算法中最流行的算法之一。AES 算法作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优 点,设计有三个密钥长度:128,192,256 位,比 DES 算法的加密强度更高,更为安全。

三、非对称加密

非对称加密算法又称为公开密钥加密算法,它需要两个密钥,一个称为公开密钥(public key),即公钥,另一个称为私有密钥(private key),即私钥。公钥与私钥需要配对使用,如果用公钥对数据进行加密,只有用对应的私钥才能进行解密,而如果使用私钥对数据进行加密,那么只有用对应的公钥才能进行解密。因为加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公钥向其它人公开,得到该公钥的乙方使用该密钥对机密信息进行加密后再发送给甲方,甲方再使用自己保存的另一把专用密钥,即私钥,对加密后的信息进行解密。

RSA

RSA 非对称加密算法是 1977 年由 Ron Rivest、 Adi Shamirh 和 LenAdleman 开发的, RSA 取名来自开发他们三者的名字。 RSA 是目前最有影响力的非对称加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被 ISO 推荐为公钥数据加密标准。 RSA 算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但反过来想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。


看不懂没关系,这种神奇的文章就适合收藏关注和转发朋友圈,证明我们就是java界的大神.....

最后,也是我们今天要讲的重点,上面的歌听得怎么样,是不是很带劲,是不是解决一天bug后,心情舒畅了很多呢?