tango.io.digest.Digest(r4795)
License:
BSD style: see doc/license.txt for details
Version:
Initial release: Feb 2006
Author:
Regan Heath, Oskar Linde
这个模块定义了摘要(Digest )接口。
-
class Digest [abstract] ¶#
- 该摘要转换接口定义报文摘要算法( message digest algorithms)的接口,例如 MD5和 SHA。报文摘要是密码哈希函数,把任意长度的消息计算产生一个固定长度的摘要作输出。
- 一个实现摘要转换的对象要开始初始化。通过调用 update(更新)方法处理数据。一旦所有数据传送到该算法,摘要便结束并且用摘要方法计算。
摘要方法只能被调用一次。摘要方法被调用后,算法被重置为它的初始状态。
使用update(更新)方法,数据可以被一部分一部分的处理,对于包含数据流的情况这是很有用的。
例如:
1 2 3 4 5 6 7 8 9 10 11 | //创建一个MD5 hash 算法 Md5 hash = new Md5(); // 处理一些数据 hash.update("The quick brown fox"); // 处理更多数据 hash.update(" jumps over the lazy dog"); // 终结算法产生摘要 ubyte[] digest = hash.binaryDigest(); |
备注:
用新数据更新hash算法。
-
ubyte[] binaryDigest(ubyte[] buffer = null) [abstract] ¶#
- 计算摘要并重置状态。
参数:
buffer | 提供给摘要要写入的缓冲器。 |
备注:
- 如果这个缓冲器不足以保持摘要,一个新缓冲器被分配并返回。调用 binaryDigest后算法状态总是被重置。使用 digestSize方法查找缓冲器已经有多大。 uint digestSize() [abstract] ¶#
- 返回摘要按字节的大小。
备注:
返回摘要大小。
参数:
buffer | 提供给摘要要写入的缓冲器。它需要能够保持2 * digestSize 的字符。 |
备注:
- 如果这个缓冲器不足以保持十六进制摘要,一个新缓冲器被分配并返回。调用 hexDigest 后算法状态总是被重置。