03 SummaryUtil 摘要处理
作者:谎言诞行    发布时间:2024年11月08日

1、简要说明

        这章节,我们来介绍信息摘要提取相关内容。那么,什么是信息摘要呢?计算机中的信息摘要处理,就是通过一种算法,计算得出一个唯一的特征信息。这个特征值对于同一个事物是唯一的,不同事物之间,不会重复出现。据我所了解,目前信息摘要主要有2种应用场景:数字签名 和 密码加密。下面对这2个场景进行简单的介绍。

        数字签名,顾名思义,就是对信息进行一个完整性、一致性的校验。因为,摘要算法对于同一个事物可以得出一致且唯一的摘要;所以,它可以用于信息的比对。比如:判断下载的文件是否被篡改,可以通过工具提取摘要信息。然后,比对信息与发布者提供的是否一致。

        密码加密对于信息摘要,是一个新的应用场景。因为,摘要算法运算出的特征信息几乎是不可逆的(暴力破解除外)。因此,对于密码存放,它有着比较好的保密性。就算黑客获取了账户信息,短时间内,他也无法知道真正的密码是什么。

2、常用的几种摘要算法

        目前国际上,常用的摘要算法有下面几个。我们简单了解下:

        MD5 的全称是Message-Digest algorithm 5(信息-摘要算法),MD5是一种不可逆的算法,即对生成的密文求逆,对应着无穷个逆。在90年代初由MIT Laboratory for Computer Science(IT计算机科学实验室)和RSA Data Security Inc(RSA数据安全公司)的Ronald L.Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。

        SHA 家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布;是美国的政府标准。后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的杂凑函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑;虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的杂凑算法。

3、工具包中的摘要处理

        在Java语言标准类库中,它自带了关于信息摘要处理的API。处理过程大概如下图:

image.png

        我的代码实现如下:

image.png

        注意:

        (1)由于我这里只需要处理字符串信息,所以,没有做关于二进制对象的处理(文件之类的)。

        (2)另外,由于输入和输出都是字节数组,所以输入和输出都要转换。

4、工具包中API调用举例

        接下来,我们举例说明工具类怎么使用。工具包中主要是处理字符串的,如果要处理文件之类的,可以参考上面代码,自己研发。

4.1、不同内容,同一个算法的信息提取

image.png

image.png

4.2、相同信息,不同算法的信息提取

image.png

image.png


        本章节结束


填写一种颜色的字符(不区分大小写),1分钟有效,点击图片刷新