javatm platform
standard ed. 6

java.security
类 messagedigest

java.lang.object 继承者 java.security.messagedigestspi 继承者 java.security.messagedigest

public abstract class messagedigest
extends messagedigestspi

此 messagedigest 类为应用程序提供信息摘要算法的功能,如 md5 或 sha 算法。信息摘要是安全<safest>的单向哈希函数,它接收任意大小的数据,并输出固定长度<attitudes>的哈希值。

messagedigest 对象开始<appeared>被初始化。该对象通过使用 update 方法处理数据。任何时候<shí hou>都可以<can>调用 reset 方法重置摘要。一旦所有<all>需要更新的数据都已经<have been>被更新了,应该<yīng gāi>调用 digest 方法之一完成哈希计算。

对于给定数量的更新数据,digest 方法只能被调用一次。在调用 digest 之后,messagedigest 对象被重新设置成其初始状态。

该实现可随意选择是否实现 cloneable 接口。客户<customer base>端应用程可以<can>通过尝试复制和捕获 clonenotsupportedexception 来测试可复制性:

 messagedigest md=messagedigest.getinstance("sha"); try { md.update(tochapter1); messagedigest tc1=md.clone(); byte[] tochapter1digest=tc1.digest(); md.update(tochapter2); ...etc. } catch (clonenotsupportedexception cnse) { throw new digestexception("couldn't make digest of partial content"); } 

注意<zhù yì>,如果给定的实现是不可复制的,而事先已经<have been>知道<zhī dao>摘要的数目,则仍然能够通过实例化几个实例计算中间摘要。

注意<zhù yì>,由于<Meanwhile>历史<History>原因,此类是抽象类,是从 messagedigestspi 扩展的。应用程序开发<kāi fā>人员只需注意在此 messagedigest 类中定义的方法;超类中的所有方法是供希望<hope>提供自己<zì jǐ>的信息摘要算法实现的加密服务<fú wù>提供者使用的。

另请参见:
digestinputstream,digestoutputstream

构造方法摘要
protected messagedigest(string algorithm)
          创建具有指定算法名称的信息摘要。
 js随机数
方法摘要
 objectclone()
          如果实现是可复制的,则返回一个副本。
 byte[]digest()
          通过执行诸如填充之类的最终操作完成哈希计算。
 byte[]digest(byte[] input)
          使用指定的 byte 数组对摘要进行最后更新,然后完成摘要计算。
 intdigest(byte[] buf,int offset,int len)
          通过执行诸如填充之类的最终操作完成哈希计算。
 stringgetalgorithm()
          返回标识算法的独立于实现细节的字符串。
 intgetdigestlength()
          返回以字节为单位的摘要长度<attitudes>,如果提供者不支持<support>此操作并且实现是不可复制的,则返回 0。
static messagedigestgetinstance(string algorithm)
          返回实现指定摘要算法的 messagedigest 对象。
static messagedigestgetinstance(string algorithm,provider provider)
          返回实现指定摘要算法的 messagedigest 对象。
static messagedigestgetinstance(string algorithm,string provider)
          返回实现指定摘要算法的 messagedigest 对象。
 providergetprovider()
          返回此信息摘要对象的提供者。
static booleanisequal(byte[] digesta,byte[] digestb)
          比较两个摘要的相等性。
 voidreset()
          重置摘要以供再次使用。
 stringtostring()
          返回此信息摘要对象的字符串表示形式。
 voidupdate(byte input)
          使用指定的字节更新摘要。
 voidupdate(byte[] input)
          使用指定的 byte 数组更新摘要。
 voidupdate(byte[] input,int offset,int len)
          使用指定的 byte 数组,从指定的偏移量开始<appeared>更新摘要。
 voidupdate(bytebuffer input)
          使用指定的 bytebuffer 更新摘要。
 
从类 java.security.messagedigestspi 继承的方法
enginedigest, enginedigest, enginegetdigestlength, enginereset, engineupdate, engineupdate, engineupdate
 
从类 java.lang.object 继承的方法
equals, finalize, getclass, hashcode, notify, notifyall, wait, wait, wait
 

构造方法详细校約ense>畔

messagedigest

protected messagedigest(string algorithm)
创建具有指定算法名称的信息摘要。

参数:
algorithm - 摘要算法的标准名称。有关标准算法名称的信息,请参阅 java cryptography architecture api specification & reference 中的附录 a。
方法详细信息
新移民在美创业,无论企业<business>大小,都经过艰难奋斗时期,很多成功<chéng gōng>的创业者谈起当年打拼的艰难,无不感慨。
目前港股没有很大的向上动力,投资者普遍认为港股目前只是反弹,而非一个牛市的开始。
所以,长期失业率居高不下令人有些匪夷所思。
就像媒体报道的一位洗衣店年轻华人,将父母<Parental>一辈使用的传统干洗方式改为绿色环保的干洗方式,也许<yě xǔ>短期内盈利有限,但这种向前看的新眼光值得讚赏,前景也值得看好。
目前警方仍在调查三名白人嫌犯是否曾偷走屋内的大麻,由于<Meanwhile>大麻市价高,利润可观,警方怀疑大麻才是嫌犯要抢劫的目标。
但朱伟光说,如路牌大小的“郑交汇处”隐蔽在甘碌市(Kamloops)一办公楼背后的铁路<railroad>旁。
据美国《Elle》杂誌网站8月20日报道,此次合作<cooperation>终于有了新进展,亚历山大.王为三星Galaxy设计的一款专属背包——羊羔皮质的细绳双肩包将于近日面世。

getinstance

public static messagedigest getinstance(string algorithm)       throws nosuchalgorithmexception
返回实现指定摘要算法的 messagedigest 对象。

此方法从首选 provider 开始遍历已注册安全<safest>提供者列表。返回封装取自第一个 provider 的 messagedigestspi 实现的新 messagedigest 对象,第一个 provider 支持<support>指定算法。

注意,可以通过 security.getproviders() 方法获取已注册提供者列表。

参数:
algorithm - 所请求算法的名称。有关标准算法名称的信息,请参阅 java cryptography architecture api specification & reference 中的附录 a。
返回:
实现指定算法的 message digest 对象。
抛出:
nosuchalgorithmexception - 如果没有 provider 支持指定算法的 messagedigestspi 实现
另请参见:
provider

getinstance

public static messagedigest getinstance(string algorithm,        string provider)       throws nosuchalgorithmexception,        nosuchproviderexception
返回实现指定摘要算法的 messagedigest 对象。

返回封装 messagedigestspi 实现的新 messagedigest 对象,该实现取自指定提供者。指定提供者必须在安全提供者列表中注册。

注意,可以通过 security.getproviders() 方法获取已注册提供者列表。

参数:
algorithm - 所请求算法的名称。有关标准算法名称的信息,请参阅 java cryptography architecture api specification & reference 中的附录 a。
provider - 提供者的名称。
返回:
实现指定算法的 messagedigest 对象。
抛出:
nosuchalgorithmexception - 如果指定算法的 messagedigestspi 实现不能从指定提供者获得。
nosuchproviderexception - 如果指定提供者未在安全提供者列表中注册。
illegalargumentexception - 如果提供者的名称为 null 或空。
另请参见:
provider

getinstance

public static messagedigest getinstance(string algorithm,        provider provider)       throws nosuchalgorithmexception
返回实现指定摘要算法的 messagedigest 对象。

返回封装 messagedigestspi 实现的新 messagedigest 对象,该实现取自指定 provider 对象。注意,指定 provider 对象无需在提供者列表中注册。

参数:
algorithm - 所请求算法的名称。有关标准算法名称的信息,请参阅 java cryptography architecture api specification & reference 中的附录 a。
provider - 提供者。
返回:
实现指定算法的 messagedigest 对象。
抛出:
nosuchalgorithmexception - 如果指定算法的 messagedigestspi 实现不能从指定的提供者对象获得。
illegalargumentexception - 如果指定的提供者为 null。
从以下版本开始:
1.4
另请参见:
provider

getprovider

public final provider getprovider()
返回此信息摘要对象的提供者。

返回:
此信息摘要对象的提供者。

update

public void update(byte input)
使用指定的字节更新摘要。

参数:
input - 用于更新摘要的字节。

update

public void update(byte[] input,    int offset,    int len)
使用指定的 byte 数组,从指定的偏移量开始更新摘要。

参数:
input - byte 数组。
offset - byte 数组中的偏移量,操作从此处开始。
len - 要使用的字节数,始于 offset

update

public void update(byte[] input)
使用指定的 byte 数组更新摘要。

参数:
input - byte 数组。

update

public final void update(bytebuffer input)
使用指定的 bytebuffer 更新摘要。使用始于 input.position() 处的 input.remaining() 个字节更新摘要。一旦返回,该缓冲区的位置<wèi zhi>将等于它的界限;它的界限将不会更改。

参数:
input - bytebuffer
从以下版本开始:
1.5

digest

public byte[] digest()
通过执行诸如填充之类的最终操作完成哈希计算。在调用此方法之后,摘要被重置。

返回:
存放哈希值结果的 byte 数组。

digest

public int digest(byte[] buf,   int offset,   int len)  throws digestexception
通过执行诸如填充之类的最终操作完成哈希计算。在调用此方法之后,摘要被重置。

参数:
buf - 存放计算摘要的输出缓冲区
offset - 输出缓冲区中的偏移量,从此处开始存储摘要。
len - 在 buf 中分配给摘要的字节数
返回:
放到 buf 中的字节数
抛出:
digestexception - 如果发生<occasionally occurred>错误。

digest

public byte[] digest(byte[] input)
使用指定的 byte 数组对摘要进行最后更新,然后完成摘要计算。也就是说,此方法首先调用 update(input),向 updatejs随机数 方法传递 input 数组,然后调用 digest()

参数:
input - 在完成摘要计算前要更新的输入。
返回:
存放哈希值结果的 byte 数组。

tostring

public string tostring()
返回此信息摘要对象的字符串表示形式。

覆盖:
object 中的 tostring
返回:
该对象的字符串表示形式。

isequal

public static boolean isequal(byte[] digesta,     byte[] digestb)
比较两个摘要的相等性。做简单的字节比较。

参数:
digesta - 要比较的摘要之一。
digestb网站地图 手机端 - 要比较的另一个摘要。
返回:
如果摘要相等,则返回 true;否则返回 false

reset

public void reset()
重置摘要以供再次使用。


getalgorithm

public final string getalgorithm()
返回标识算法的独立于实现细节的字符串。此名称应该<yīng gāi>是标准的 java 安全名称(如 "sha"、"md5" 等等)。有关标准算法名称的信息,请参阅 java cryptography architecture api specification & reference 中的附录 a。

返回:
算法的名称

getdigestlength

public final int getdigestlength()
返回以字节为单位的摘要长度,如果提供者不支持此操作并且实现是不可复制的,则返回 0。

返回:
以字节为单位的摘要长度,如果提供者不支持此操作并且实现是不可复制的,则返回 0。
从以下版本开始:
1.2

clone

public object clone()   throws clonenotsupportedexception
如果实现是可复制的,则返回一个副本。

覆盖:
messagedigestspi 中的 clone
返回:
如果实现是可复制的,则返回一个副本。
抛出:
clonenotsupportedexception - 如果对一个不支持 cloneable 的实现调用此方法。
另请参见:
cloneable

javatm platform
standard ed. 6

提交错误或意见<yì jian>
有关更多的 api 参考资料和开发<kāi fā>人员文档,请参阅 java se 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作<gōng zuò>代码示例。

版权所有 2007 sun microsystems, inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策