Вопрос, вероятно, что character set/encodings aren't matching.
Если строка в PHP является UTF-8 кодируются, вы можете зеркало, что в Node.js, указав 'utf8'
:
function sha1(input) {
return crypto.createHash('sha1').update(input, 'utf8').digest('hex');
};
> crypto.createHash('sha1').update('ЭЮЯЁ').digest('hex')
'da7f63ac9a3b5c67c8920871145cb5904f3df29a'
> crypto.createHash('sha1').update('ЭЮЯЁ', 'utf8').digest('hex')
'f78c3521413a8321231e35665f8c4a16550e182a'
'ABC'
будет иметь больше шансов на соответствие, потому что они все символы ASCII и ASCII являются отправной точкой для многих других наборов символов. Когда вы выходите за пределы ASCII, вы чаще сталкиваетесь с конфликтами.
Вы использовали ту же кодировку для обоих? – Carsten