9

I have a list of passwords in mySQL that are generated using

$hash = '{SHA}' . base64_encode(sha1('some string here', true));

I need to convert these into what would be the equivalent of

$hash = sha1('some string here');

As these are password that our mail system uses, and we want to convert to another mail system (but requires that it be the 40 char hex hash :(

How would I convert from one format to the other (I'm pretty sure I've done this before, but the other way, though I can't find the code!)

As a note, I mentioned that the data is in mySQL - this is irrelevant - I know how to get the data, just not to convert it.

The hash is the same - I am only trying to convert the way the information is packed (I think this just needs to be converted from base64 to base16, but that's just a guess!)

Mez
  • 24,430
  • 14
  • 71
  • 93

2 Answers2

18
$binary = base64_decode(substr($hash, 5));
$hex = bin2hex($binary);
ZZ Coder
  • 74,484
  • 29
  • 137
  • 169
-3

Well base64_decode() can be found in the base64_encode manual entry.
And I am sure they have a way to convert raw format in the sha1 manual entry comments, if it's too hard for you to write it yourself

Your Common Sense
  • 156,878
  • 40
  • 214
  • 345