数字签名
消息摘要(P445-447)
消息摘要(message digest)是数据块的数字指纹。例如,所谓的SHA1(安全散列算法)可将任何数据块,无论其数据有多长,都压缩为160位(20字节)的序列。
消息摘要具有两个基本属性
如果数据的1位或者几位改变了,那么消息摘要也将改变
拥有给定消息的伪造者不能创建与原消息具有相同摘要的假消息
此外消息摘要算法还有SHA-256、SHA-384和SHA-S12。
java创建消息摘要
MessageDigest类是用于创建封装了指纹算法的对象的“工厂”,它的静态方法getInstance返回继承了MessageDigest类的某个类的对象。这意味着MessageDigest类能够承担下面的双重职责:
作为一个工厂类
作为所有消息摘要算法的超类
在获取MessageDigest对象之后,可以通过反复调用update方法,将信息中的所有字节提供给该对象。
或者
当完成上述操作后,调用digest方法。该方法按照指纹算法的要求补齐输入,并且进行相应的计算,然后以字节数组的形式返回消息摘要。
消息签名(P448)
公共密钥加密技术是基于公共密钥和私有密钥这两个基本概念的。它的设计思想是你可以将公共密钥告诉世界上的任何人,但是,只有自己才持有私有密钥。
用私有密钥对消息摘要进行恰名,然后用公共密钥对该签名进行校验。
Last updated