本节课的学习目标,这节课对应的岗位呢是架构师和研发工程师能力。密码呢是散列算法的概念和使用,以及对称加密算法非对称加密算法的概念和使用,重难点的是不同的加密算法的特点,以及选择合适的加密算法。
本课程的目录第一部分散列算法,第二部分对称加密算法。第三部分呢是非对称加密算法。
首先我们看第一部分散列算法。
散列算法它的概念呢是把任意长度的数据作为输入。通过散列算法呢得到固定长度的输出值。这个输出值呢我们称作散列值,它是一种数据压缩映射的关系。
我们可以这样理解,散列算法呢就是将任意长度的消息压缩到固定长度。消息摘要的这样的一类函数。
散列算法的应用。首先呢是m t 五算法,它是一种被广泛使用的密码散列函数,它可以产生出一一百二十八位的散列池,用于确保信息传递的完整性。是一九九二年由美国密码学家罗纳德里韦斯特设计的,用来取代m d 四算法。
那么下一算法呢,它是美国国家安全局设计的。
它可以生成一个一百六十位的散列值。乍二呢它是一个集合,包括上二二四上二五六,上三八四以及上五幺二,推荐的是二五六和五幺二。那煞三呢是第三代安全散列算法。但是因为它的实现包呢没有普及,所以我们在实际开发过程中呢,可能就找不到它的实现包,就没法调用它。
那慢速加盐散列呢,它是有这几种实现的,慢速加盐散裂的话,它是安全性最高的,但是它的性能是最低的。所以我们要根据实际的使用场景来选用。
这里要重点提一下的是就是m d 五和上一算法呢都已经被密码学家相继找到了碰撞。也就是说嗯在理论上已经都可以破解了。所以说这两种算法目前都不再安全了,相关的一些安全标准里边的话也不不太建议使用m d 五和上衣。
大家可以看一下自己系统里是否使用了这两种算法,呃,可以回去进行一下升级。
下面我们来介绍哈希算法在java 中的实现。
在java 中呢。
对于常见的算法可以有dedicate 中就可以进行实现啊,另外呢还有一些加密方法的类包,也是可以实现常用的加密算法。这里呢我们以m d 五和煞二五六这两种哈希算法为例进行介绍。我们使用java 自带的方法类包的话,可以通过这种方法来实现。
那么它是需要我们自己手动来编写一个字节转换的一个方法来来进行一些一个转化。如果使用谷歌的瓜娃类包的话,那么我们只需要在项目中引入瓜娃的这个依赖包。
那么我们后续的嗯加密的话就会非常的简单,只需要调他的m d o 方法。他嗯在他自己的类包里面进行了一个封装。
叉二五六是和m d 五是同理。
现在我们来看一下我的这个铭文的文本,通过m t 五的官网方法,还有java 自带的m d 五加密方法。加密后看它的输出结果是怎么样。
嗯,很明显啊,通过guava 类包以及java 自带的这个类包加密进行m d 五加密,得到的字符串是相同的。同理下二五六也是通过官网得到的字符串和通过java 自带类包输出的字符串都是相同的。嗯啊。
这两种方式的加密方法都没有问题。
那么我们在使用的过程中呢,呃如果是为了方便起见的话,可以直接引入扎网。谷歌的官网类包
安全技术-2加密算法
![](https://img-home.csdnimg.cn/images/20240711042549.png)