#python #pycrypto
#питон #pycrypto
Вопрос:
Можно ли использовать Crypto.Random для безопасной генерации надежного секретного ключа и вектора инициализации?
Ответ №1:
Согласно документам PyCryto, ответ — да:
from Crypto.PublicKey import RSA
from Crypto import Random
rng = Random.new().read
RSAkey = RSA.generate(1024, rng)
Комментарии:
1.
ValueError: RSA modulus length must be a multiple of 256 and >= 1024
в моем(2, 6, 0, 'final', 0)
2. Секретный ключ и вектор инициализации используются для блочных шифров и режимов работы блочного шифрования, таких как AES-CBC, а не RSA.
Ответ №2:
Использование pycrypto (Эта ссылка для получения дополнительной информации)
>>> from Crypto.Hash import MD5
>>> MD5.new('abc').hexdigest()
'900150983cd24fb0d6963f7d28e17f72'
Больше безопасности (для получения дополнительной информации)?
>>> from versile.quick import VCrypto, VX509Crypto
>>> purpose = 'Versily Python Demo Services'
>>> personal = 'I like Monty Python humor'
>>> password = 'kLqnr37ubG'
>>> identity = VCrypto.lazy().dia(1024, purpose, personal, password)
>>> type(identity)
<class 'versile.crypto.local._VLocalRSAKey'>
>>> x509_pubkey = VX509Crypto.export_public_key(identity.public)
>>> print(x509_pubkey)
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBANpspNSQPXlq/tEBIq8pT31WYzcKFtX8b41k9ec5YqiJhgOf9WyK0UqTScOzLiySKun2
XBVjXRhok5kvyT32K JYh2VwoOnS0J6KFOhaatKMvDmVIFyhAdZ7xC3 jf1zT0n/vAQE0 DEGKfS
de7je8eA/T4C7uwLKn98aY oudFtAgMBAAE=
-----END RSA PUBLIC KEY-----
Комментарии:
1. Какое отношение universal.crypto имеет к PyCrypto? И использование хэша MD5 также не является безопасным методом, использующим PyCrypto.Random.