digitalmars.D - MD5 Digest ubyte change to char[]
- jicman (25/25) Feb 19 2005 Greetings!
- Unknown W. Brackets (4/41) Feb 19 2005 You can try explicitly casting it... but, really, remember that you
- jicman (12/53) Feb 19 2005 Yeah, I do want it hex. But, after posting, I did a search, :-) and gue...
- jicman (6/64) Feb 19 2005 I have a suggestion for the d folks, perhaps we could add a toString to ...
- Unknown W. Brackets (3/11) Feb 19 2005 I agree. I find the hexadecimal hash useful when dealing with
- Regan Heath (10/19) Feb 20 2005 Y'all might want to check out the Deimos library:
Greetings! I have this code, char[] CalculateMD5(byte[] Buffer) { char[] ehash = "return"; ubyte digest[16]; MD5_CTX context; context.start(); context.update(Buffer[0..length]); context.finish(digest); printDigest(digest); for (int i=0; i<digest.length;i++) writefln(digest[i]); //ehash = digest; return(ehash); } I need to change digest to be a char[]. I tried std.string.toString(digest) but I get this error: 21:38:36.05>dmd DeleteTokens.d ws2_32.lib DeleteTokens.d(383): cannot implicitly convert expression digest of type ubyte[16] to char[] Any ideas? thanks. jos�
Feb 19 2005
You can try explicitly casting it... but, really, remember that you won't get a string per say, but rather bytes... it really *is* bytes. You don't want to convert it to a hexadecimal string, do you? -[Unknown]Greetings! I have this code, char[] CalculateMD5(byte[] Buffer) { char[] ehash = "return"; ubyte digest[16]; MD5_CTX context; context.start(); context.update(Buffer[0..length]); context.finish(digest); printDigest(digest); for (int i=0; i<digest.length;i++) writefln(digest[i]); //ehash = digest; return(ehash); } I need to change digest to be a char[]. I tried std.string.toString(digest) but I get this error: 21:38:36.05>dmd DeleteTokens.d ws2_32.lib DeleteTokens.d(383): cannot implicitly convert expression digest of type ubyte[16] to char[] Any ideas? thanks. jos�
Feb 19 2005
Yeah, I do want it hex. But, after posting, I did a search, :-) and guess what? I found the code: char [] ChangeToChar(ubyte[] digest) { char[] strOut; foreach (ubyte b; digest) strOut ~= std.string.format("%02x",b); return(strOut); } I posted there for easier search. :-) thanks. In article <cv9285$1l0p$1 digitaldaemon.com>, Unknown W. Brackets says...You can try explicitly casting it... but, really, remember that you won't get a string per say, but rather bytes... it really *is* bytes. You don't want to convert it to a hexadecimal string, do you? -[Unknown]Greetings! I have this code, char[] CalculateMD5(byte[] Buffer) { char[] ehash = "return"; ubyte digest[16]; MD5_CTX context; context.start(); context.update(Buffer[0..length]); context.finish(digest); printDigest(digest); for (int i=0; i<digest.length;i++) writefln(digest[i]); //ehash = digest; return(ehash); } I need to change digest to be a char[]. I tried std.string.toString(digest) but I get this error: 21:38:36.05>dmd DeleteTokens.d ws2_32.lib DeleteTokens.d(383): cannot implicitly convert expression digest of type ubyte[16] to char[] Any ideas? thanks. jos�
Feb 19 2005
I have a suggestion for the d folks, perhaps we could add a toString to the md5 library. So, char[] hash = digest.toString(); or something like that. just a thought... In article <cv93de$1mdv$1 digitaldaemon.com>, jicman says...Yeah, I do want it hex. But, after posting, I did a search, :-) and guess what? I found the code: char [] ChangeToChar(ubyte[] digest) { char[] strOut; foreach (ubyte b; digest) strOut ~= std.string.format("%02x",b); return(strOut); } I posted there for easier search. :-) thanks. In article <cv9285$1l0p$1 digitaldaemon.com>, Unknown W. Brackets says...You can try explicitly casting it... but, really, remember that you won't get a string per say, but rather bytes... it really *is* bytes. You don't want to convert it to a hexadecimal string, do you? -[Unknown]Greetings! I have this code, char[] CalculateMD5(byte[] Buffer) { char[] ehash = "return"; ubyte digest[16]; MD5_CTX context; context.start(); context.update(Buffer[0..length]); context.finish(digest); printDigest(digest); for (int i=0; i<digest.length;i++) writefln(digest[i]); //ehash = digest; return(ehash); } I need to change digest to be a char[]. I tried std.string.toString(digest) but I get this error: 21:38:36.05>dmd DeleteTokens.d ws2_32.lib DeleteTokens.d(383): cannot implicitly convert expression digest of type ubyte[16] to char[] Any ideas? thanks. jos�
Feb 19 2005
I agree. I find the hexadecimal hash useful when dealing with non-bytesafe environments/connections... -[Unknown]I have a suggestion for the d folks, perhaps we could add a toString to the md5 library. So, char[] hash = digest.toString(); or something like that. just a thought...
Feb 19 2005
On Sat, 19 Feb 2005 21:03:50 -0800, Unknown W. Brackets <unknown simplemachines.org> wrote:I agree. I find the hexadecimal hash useful when dealing with non-bytesafe environments/connections.. -[Unknown]Y'all might want to check out the Deimos library: http://www.dsource.org/projects/deimos/ I wrote some basic crypto functions for MD2, MD4, MD5, SHA0, SHA1, SHA256, SHA512, Tiger, including a templated function for producing a hex string of the various digests. To see the source itself: http://svn.dsource.org/svn/projects/deimos/trunk/etc/crypto/hash/ ReganI have a suggestion for the d folks, perhaps we could add a toString to the md5 library. So, char[] hash = digest.toString(); or something like that. just a thought...
Feb 20 2005