У меня есть следующий код в Python:
port_name = 'test-PR-2092'
print int(hashlib.md5(port_name).hexdigest(), 16) % 10000
// 353
В Javascript я использую библиотеку шифрования, чтобы попытаться сделать то же самое (у меня нет контроля над кодом Python, поэтому мне нужнооставьте то же самое):
parseInt(
crypto
.createHash('md5')
.update('test-PR-2092')
.digest('hex'),
16
) % 10000
// 4160
Javascript дает совершенно другой результат.
Глядя на int, они очень похожи, за исключением того, что Javascript находится в научной нотации.
Python: 158458604564589336383831436621974090353
Javascript: 1.5845860456458934e+38
Кто-нибудь знает, откуда это расхождение?
Редактировать: Решил мою собственную проблему, а не дубликат, потому что никто не рекомендовал BigInteger в любом вопросе, который я видел