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








"Regan Heath" <regan netwin.co.nz>