When I use std.algorithm.copy
on std.digest
, I get different results compared to the put
byte byte byte. Why?
import std.stdio; import std.digest.digest; import std.digest.md; import std.algorithm; void main() { string s = "Hello!\n"; auto d1 = makeDigest!MD5; auto d2 = makeDigest!MD5; foreach (ubyte b; s) { d1.put(b); } s.copy(d2); writeln(digest!MD5(s).toHexString); writeln(d1.finish().toHexString); writeln(d2.finish().toHexString); }
Output:
E134CED312B3511D88943D57CCD70C83 E134CED312B3511D88943D57CCD70C83 D41D8CD98F00B204E9800998ECF8427E
Tamas source share