MessageDigest类
介绍:信息摘要
java 1.6 api介绍:此类为应用程序提供信息摘要功能,如:MD5/SHA等.信息摘要是简单的单向哈希函数,它接收任意长度的数据,并返回固定长度的哈希值
获得对象:
一般通过getInstance("算法名称")方法获得
常用方法;
通过update()方法处理数据,任何时候都可以通过reset()方法重置摘要,一旦所有更新数据都更新完了,应该调用digest()方法完成哈希计算,对于定量的数据计算,digest()方法只能被调用一次,MessageDigest对象恢复到初始状态
其他方法:
- clone();如果实现是可复制的,则返回一个副本
- digest();通过执行诸如填充之类的操作完成哈希计算
digest(byte[] input)
通过指定的数组完成最后更新操作,并计算哈希digest(byte[] buf, int offset, int len)
通过指定数组,并指定开始位置(偏移量),和数字长度,来进行最后更新,并计算哈希- getAlgorithm();返回指定的算法名称
getDigestLength()
返回以字节为单位的摘要长度,如果实现不支持,则返回0getInstance(String algorithm)
返回指定算法的MessageDigest对象getInstance(String algorithm, Provider provider)
通过指定算法提供者和算法名称返回MessageDigest对象getInstance(String algorithm, String provider)
通过指定算法提供者和算法名称返回MessageDigest对象- getProvider();返回此信息摘要对象的提供者
- isEquals();比较两个信息摘要对象的相等性
- reset();重置摘要以供再次使用
- toString();返回此信息摘要对象的字符串表示形式
- update(
byte input
);通过指定的字节更新摘要 update(byte[] input)
通过指定字节数组更新摘要update(byte[] input, int offset, int len)
通过指定字节数组从指定偏移量开始更新摘要update(ByteBuffer input)
通过指定ByteBuffer更新摘要
支持的算法:
MD2MD5
SHA-1
SHA-256
SHA-384
SHA-512
特征:
1.在计算上,查找两个哈希值为相同值的消息是不可行的。
2.文摘不应该揭示用于生成它的输入的任何信息。