函数

func digest<T>(T, Array<Byte>) where T <: Digest

public func digest<T>(algorithm: T, data: Array<Byte>): Array<Byte> where T <: Digest

功能:提供 digest 泛型函数,实现用指定的摘要算法进行摘要运算。

参数:

  • algorithm: T - 具体的摘要算法。
  • data: Array<Byte> - 待进行摘要运算的数据。

返回值:

示例:

import std.crypto.digest.digest
import crypto.digest.MD5

main() {
    let data: Array<Byte> = [1, 2, 3, 4, 5]
    let md5 = MD5()
    let digestBytes = digest<MD5>(md5, data)
    println(digestBytes)
}

输出结果为:

[124, 253, 208, 120, 137, 179, 41, 93, 106, 85, 9, 20, 171, 53, 224, 104]

func digest<T>(T, String) where T <: Digest (deprecated)

public func digest<T>(algorithm: T, data: String): Array<Byte> where T <: Digest

功能:提供 digest 泛型函数,实现用指定的摘要算法进行摘要运算。

注意:

未来版本即将废弃不再使用,可使用 digest<T>(T, Array<Byte>) where T <: Digest 替代。

参数:

  • algorithm: T - 具体的摘要算法。
  • data: String - 待进行摘要运算的数据。

返回值:

func digest<T>(T, InputStream) where T <: Digest

public func digest<T>(algorithm: T, input: InputStream): Array<Byte> where T <: Digest

功能:提供 digest 泛型函数,实现用指定的摘要算法对 InputStream 里的数据进行摘要运算。

参数:

  • algorithm: T - 具体的摘要算法。
  • input: InputStream - 待进行摘要运算的 InputStream。

返回值:

示例:

import std.crypto.digest.digest
import crypto.digest.MD5
import std.io.BufferedInputStream
import std.io.ByteBuffer

main() {
    /* 将原始的字节数组 data 转换为一个输入流 BufferedInputStream */ 
    let data: Array<Byte> = [1, 2, 3, 4, 5]
    let byteBuffer = ByteBuffer(data)
    let bufferedInputStream = BufferedInputStream(byteBuffer)

    let md5 = MD5()
    let digestBytes = digest(md5, bufferedInputStream)
    println(digestBytes)
}

输出结果为:

[124, 253, 208, 120, 137, 179, 41, 93, 106, 85, 9, 20, 171, 53, 224, 104]