RosettaCodeData/Task/MD5/V-(Vlang)/md5.v
2023-07-01 13:44:08 -04:00

33 lines
1.1 KiB
V

import crypto.md5
fn main() {
for p in [
// RFC 1321 test cases
["d41d8cd98f00b204e9800998ecf8427e", ""],
["0cc175b9c0f1b6a831c399e269772661", "a"],
["900150983cd24fb0d6963f7d28e17f72", "abc"],
["f96b697d7cb7938d525a2f31aaf161d0", "message digest"],
["c3fcd3d76192e4007dfb496cca67e13b", "abcdefghijklmnopqrstuvwxyz"],
["d174ab98d277d9f5a5611c2c9f419d9f",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"],
["57edf4a22be3c955ac49da2e2107b67a", "12345678901234567890" +
"123456789012345678901234567890123456789012345678901234567890"],
// test case popular with other RC solutions
["e38ca1d920c4b8b8d3946b2c72f01680",
"The quick brown fox jumped over the lazy dog's back"],
] {
validate(p[0], p[1])
}
}
fn validate(check string, s string) {
sum := md5.hexhash(s)
if sum != check {
println("MD5 fail")
println(" for string, $s")
println(" expected: $check")
println(" got: $sum")
} else {
println('MD5 succeeded $s')
}
}