Я пытаюсь преобразовать строку в контрольную сумму SHA1, , которая используется в поле csum Анки .
sfld: 'Bonjour' - содержимое карты без HTML (первая часть полей, отфильтрованная).
csum: 4077833205 - Контрольная сумма строки SHA1 sfld, ограничена 8 цифрами. PHP: (int) (hexdec (getFirstNchars (sha1 ($ sfld), 8)))
Итак, я хочу преобразовать строку Bonjour
и получить 4077833205
.
Однако, хотя я пытался следовать этому посту , я не смог получить правильное значение.
int(hashlib.sha1(b"Bonjour").hexdigest(), 16) % (10**8) # 48831164
abs(hash(s)) % (10 ** 8) # 70576291
Также цифра также не совпадает, и значение csum составляет 10 цифр, хотя в документе говорится, что это 8 цифр. Так что я думаю, что неправильно понял.
Я проверил свою базу данных Anki и обнаружил, что значение столбца csum
составляет от 7 до 10 цифр, хотя 10 цифр является наиболее распространенным.
Мой вопрос: что эквивалентно PHP (int)(hexdec(getFirstNchars(sha1($sfld), 8)))
в Python и почему ответ выше не соответствует правильному значению?