Re: Converting uint[] slice to string for the purpose of hashing?
On Thursday, 23 July 2015 at 11:49:05 UTC, cym13 wrote: On Thursday, 23 July 2015 at 11:15:46 UTC, Enjoys Math wrote: 1. Is the best way to hash a uint[] slice 2. How do you do it? IIRC, std.digest functions take ubyte[] as input, so to hash a uint[] I would do the following: void main(string[] args) { import std.conv; import std.digest.md; int[] a = [1, 2, 3, 4, 5]; auto md5 = new MD5Digest(); md5.put(a.to!(ubyte[])); auto hash = md5.finish(); writeln(hash); } Thanks. That worked. Here's my code: module hashtools; import std.conv; import std.digest.md; string uintSliceToHash(const uint[] slice) { auto md5 = new MD5Digest(); md5.put(slice.to!(ubyte[])); return md5.finish().to!(string); } unittest { import std.stdio; uint[] slice = [1,2,3,4]; writeln(uintSliceToHash(slice)); }
Re: Converting uint[] slice to string for the purpose of hashing?
On Thursday, 23 July 2015 at 12:10:04 UTC, Enjoys Math wrote: On Thursday, 23 July 2015 at 11:49:05 UTC, cym13 wrote: [...] Thanks. That worked. Here's my code: module hashtools; import std.conv; import std.digest.md; string uintSliceToHash(const uint[] slice) { auto md5 = new MD5Digest(); md5.put(slice.to!(ubyte[])); return md5.finish().to!(string); } unittest { import std.stdio; uint[] slice = [1,2,3,4]; writeln(uintSliceToHash(slice)); } Actually, uint[] seems to be hashable: import std.stdio; int[uint[]] aa; aa[[1,2,3]] = 5; writeln(aa[[1,2,3]]); WORKS
Converting uint[] slice to string for the purpose of hashing?
1. Is the best way to hash a uint[] slice 2. How do you do it?
Re: Converting uint[] slice to string for the purpose of hashing?
On Thursday, 23 July 2015 at 11:15:46 UTC, Enjoys Math wrote: 1. Is the best way to hash a uint[] slice 2. How do you do it? IIRC, std.digest functions take ubyte[] as input, so to hash a uint[] I would do the following: void main(string[] args) { import std.conv; import std.digest.md; int[] a = [1, 2, 3, 4, 5]; auto md5 = new MD5Digest(); md5.put(a.to!(ubyte[])); auto hash = md5.finish(); writeln(hash); }
Re: Converting uint[] slice to string for the purpose of hashing?
All types are hashable and for your own structs and classes you can redefine opHash
Re: Converting uint[] slice to string for the purpose of hashing?
On Thursday, July 23, 2015 12:56:13 Temtaime via Digitalmars-d-learn wrote: All types are hashable and for your own structs and classes you can redefine opHash It's toHash, actually, but yeah. - Jonathan M Davis