3

I have tried hashing a string in PHP7 using MD5 and the same in Javascript, but the results are different.. can someone explain me how to get this matched?

//PHP Code
md5('1: ÏtÚë£');
//Javascript Code
hex_md5('1: ÏtÚë£');

I expect the result to match, but the actual output are the ff:

PHP: "3fbee32d8a25287ad7ccbf133d82bb54"

Javascript: "9a7246843cd0c5906f2e588f0997116b"

Thanks in advance!

  • [This link might be helpful](https://stackoverflow.com/questions/29390385/node-js-how-to-repreduce-php-md5-encryption) – lambda Mar 27 '19 at 06:30

1 Answers1

3

I don't know, what hex_md5() is (I can suggest it). Anyway, it's character encoding issue:

php/UTF-8:

3fbee32d8a25287ad7ccbf133d82bb54

php/LATIN-1:

9a7246843cd0c5906f2e588f0997116b
Danyal Sandeelo
  • 12,196
  • 10
  • 47
  • 78
Wiimm
  • 2,971
  • 1
  • 15
  • 25
  • Yes, it's an encoding issue: https://gist.github.com/alexmuller/1178226 uses UTF char codes only – Hackinet Mar 27 '19 at 06:29
  • I think the library is broken. It converts strings to UTF-8, even if they are already UTF-8. In my opinion, a md5() (or general any checksum function) must accept the input data as given. The question of above is a good example, why I call it *broken*. – Wiimm Mar 27 '19 at 07:24