数字摘要
无论多大或者多小的数据体经过计算都得到相同大小的数据,原数据体哪怕只修改一个bit,摘要出来都不一样,且根据结果推算出原始数据的概率极低。消息摘要可以看作原始数据的指纹,指纹不同则原始数据不同。所以常常用作数据的完整性校验。
数字摘要与MD5/SHA算法
通用处理方式:调用MessageDigest对象的update和digest方法
流数据的特殊处理: 使用DigestInputStream或DigestOutputStream包装MessageDigest对象,调用DigestInputStream的read方法或DigestOutputStream的write方法读写完数据并将流关闭后,再调用MessageDigest对象的digest方法,流中的数据就全被摘要处理了。
基于MAC(消息验证码)的数字摘要
MAC,Message Authentication Code ,密钥被用作消息摘要生成过程的一部分。 防止内容和摘要同时被篡改,在一定成都上起到了验证发送者身份。
步骤: KeyGenerator.getInstanceKeyGeneraotr.generateKey Mac.getInstance Mac.init(secretyKey) Mac.update Mac.doFinal
数字签名
数字签名的基础是公钥和私钥的非对称加密,发送者使用私钥加密消息摘要(签名),接收者使用公钥解密消息摘要以验证签名是否是某个人的。
<