при создании дайджеста вы используете две разные кодировки символов.
Убедитесь, что у вас одинаковый тип кодировки символов.Реализация вашего узла js использует кодировку 'двоичный' псевдоним 'latin1'.Где в качестве кода в python используется кодировка символов UTf8.
Когда вы указали txtToHash.encode (), это означает, что кодирует текст в utf-8.
Поэтому измените создание дайджеста, чтобы оно соответствовалокодировка символов одинакова в обеих средах.
либо измените свой код nodejs
md5sum.update(new Buffer(txtToHash, 'utf8'));
, либо измените свой код Python на
md5val = hashlib.md5(txtToHash.encode('latin1')).hexdigest()
, приведенное выше должно датьтот же результат >> 3a091f847ee21c7c1927c19e0f29a28b
Примечание: хотя код Python дает желаемый результат.Я бы не советовал, потому что кодировка latin1 имеет только небольшое подмножество символов по сравнению с utf8.Поэтому я рекомендую вам изменить кодировку на utf-8 в вашем приложении js node и применить ту же кодировку в python *