digest 使用
MD5 算法示例
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var md5Instance = MD5()
var md: Array<Byte> = digest(md5Instance, str)
var result: String = toHexString(md)
println(result)
return 0
}
调用 MD5 成员函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var md5Instance = MD5()
md5Instance.write(str.toArray())
var md: Array<Byte> = md5Instance.finish()
var result: String = toHexString(md)
println(result)
return 0
}
运行结果:
fc5e038d38a57032085441e7fe7010b0
SHA1 算法示例
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha1Instance = SHA1()
var md: Array<Byte> = digest(sha1Instance, str)
var result: String = toHexString(md)
println(result)
return 0
}
调用 SHA1 成员函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha1Instance = SHA1()
sha1Instance.write(str.toArray())
var md: Array<Byte> = sha1Instance.finish()
var result: String = toHexString(md)
println(result)
return 0
}
运行结果:
6adfb183a4a2c94a2f92dab5ade762a47889a5a1
SHA224 算法示例
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha224Instance = SHA224()
var md: Array<Byte> = digest(sha224Instance, str)
var result: String = toHexString(md)
println(result)
return 0
}
调用 SHA224 成员函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha224Instance = SHA224()
sha224Instance.write(str.toArray())
var md: Array<Byte> = sha224Instance.finish()
var result: String = toHexString(md)
println(result)
return 0
}
运行结果:
b033d770602994efa135c5248af300d81567ad5b59cec4bccbf15bcc
SHA256 算法示例
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha256Instance = SHA256()
var md: Array<Byte> = digest(sha256Instance, str)
var result: String = toHexString(md)
println(result)
return 0
}
调用 SHA256 成员函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha256Instance = SHA256()
sha256Instance.write(str.toArray())
var md: Array<Byte> = sha256Instance.finish()
var result: String = toHexString(md)
println(result)
return 0
}
运行结果:
936a185caaa266bb9cbe981e9e05cb78cd732b0b3280eb944412bb6f8f8f07af
SHA384 算法示例
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha384Instance = SHA384()
var md: Array<Byte> = digest(sha384Instance, str)
var result: String = toHexString(md)
println(result)
return 0
}
调用 SHA384 成员函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha384Instance = SHA384()
sha384Instance.write(str.toArray())
var md: Array<Byte> = sha384Instance.finish()
var result: String = toHexString(md)
println(result)
return 0
}
运行结果:
97982a5b1414b9078103a1c008c4e3526c27b41cdbcf80790560a40f2a9bf2ed4427ab1428789915ed4b3dc07c454bd9
SHA512 算法示例
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha512Instance = SHA512()
var md: Array<Byte> = digest(sha512Instance, str)
var result: String = toHexString(md)
println(result)
return 0
}
调用 SHA512 成员函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sha512Instance = SHA512()
sha512Instance.write(str.toArray())
var md: Array<Byte> = sha512Instance.finish()
var result: String = toHexString(md)
println(result)
return 0
}
运行结果:
1594244d52f2d8c12b142bb61f47bc2eaf503d6d9ca8480cae9fcf112f66e4967dc5e8fa98285e36db8af1b8ffa8b84cb15e0fbcf836c3deb803c13f37659a60
HMAC 算法示例
说明
目前只支持HMAC-SHA512。
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import encoding.hex.*
import std.crypto.digest.*
main() {
var algorithm: HashType = HashType.SHA512
var key: Array<UInt8> = "cangjie".toArray()
var data: Array<UInt8> = "123456789".toArray()
var hmac= HMAC(key,algorithm)
var md: Array<Byte> = digest(hmac, data)
var result: String = toHexString(md)
println(result)
return 0
}
运行结果:
2bafeb53b60a119d38793a886c7744f5027d7eaa3702351e75e4ff9bf255e3ce296bf41f80adda2861e81bd8efc52219df821852d84a17fb625e3965ebf2fdd9
调用 HMAC-SHA512 成员函数
import crypto.digest.*
import encoding.hex.*
main() {
var algorithm: HashType = HashType.SHA512
var key: Array<UInt8> = "cangjie".toArray()
var data1: Array<UInt8> = "123".toArray()
var data2: Array<UInt8> = "456".toArray()
var data3: Array<UInt8> = "789".toArray()
var data4: Array<UInt8> = "123456789".toArray()
var hmac= HMAC(key,algorithm)
hmac.write(data1)
hmac.write(data2)
hmac.write(data3)
var md1: Array<Byte>= hmac.finish()
var result1: String = toHexString(md1)
println(result1)
hmac.reset()
hmac.write(data4)
var md2: Array<Byte>= hmac.finish()
var result2: String = toHexString(md2)
println(result2)
println(HMAC.equal(md1,md2))
return 0
}
运行结果:
2bafeb53b60a119d38793a886c7744f5027d7eaa3702351e75e4ff9bf255e3ce296bf41f80adda2861e81bd8efc52219df821852d84a17fb625e3965ebf2fdd9
2bafeb53b60a119d38793a886c7744f5027d7eaa3702351e75e4ff9bf255e3ce296bf41f80adda2861e81bd8efc52219df821852d84a17fb625e3965ebf2fdd9
true
SM3 算法示例
调用仓颉标准库提供的通用 digest 函数
import crypto.digest.*
import std.convert.*
import std.crypto.digest.*
import encoding.hex.*
main() {
var str: String = "helloworld"
var sm3Instance = SM3()
var md: Array<Byte> = digest(sm3Instance, str)
var result: String = toHexString(md)
println(result)
return 0
}