@minotavr1712

Как работает цифровая подпись в питоне в модуле ecdsa?

Подскажите пожалуйста, почему так происходит, разве цифровая подпись не должна быть всегда одной и той же?
import ecdsa

sk = ecdsa.SigningKey.generate(ecdsa.SECP256k1)
pk = sk.get_verifying_key()
a = sk.sign(b'a')
b = sk.sign(b'a')

print(a)
print(b)

print(pk.verify(a, b'a'))
print(pk.verify(b, b'a'))


Вывод:
b'L\xe9G\x83\xfa\x89\x93\xb2J\x05\xb3\xaai\xcf>&"\xc1R\r\xe81"N\xe2\x02\x00\x1e_D\xf7i\x146\xd8\xf7,\xab\xcdv\xbfF\x8eR\xd3\xcf|_\x84^\xf2=H\x9d\xa1\xe9)\xaa\xd9\xcb\x88\xb3d\x19'
b'Y\xfaOi\xcc2\x85\xb0\xf4\xb0\x87\xc5\x98\xae\x1f|\xda\xf8\x8e\x8d\xcd\xb8\x9d\x06\xdf\x1f\xf5\x12\x9d\xcetY\xb7\xcd\x89\xe9\x17r>o_\xea)\xe8;\xc6Y<*]\xa8\xac\xb4\x98t&\x8a\xae\x81\x97=\xa1\x89\x11'
True
True
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
ma4akk
@ma4akk
Функция sk.sign() вызывается дважды с одним и тем же сообщением, b'a', но каждый раз возвращает разные результаты. Потому, что функция sign() генерирует новую цифровую подпись при каждом вызове, даже если она вызывается с одним и тем же сообщением.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы