У меня была та же проблема с созданием хэша для строки, отличной от UTF8:
var non_utf8_str = "test_merchant;www.market.ua;DH783023;1415379863;1547.36;UAH;Процессор
Intel Core i5-4670 3.4GHz;Память Kingston DDR3-1600 4096MB
PC3-12800;1;1;1000;547.36";
Результаты в PHP и NodeJS были разными, пока я не использовал библиотеку utf8 .Поэтому следующий код работает как для PHP, так и для NodeJS:
crypto.createHash('md5').update(utf8.encode(non_utf8_str)).digest('hex');