Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pycrypto-使用Crypto.Random生成密钥和初始化向量_Python_Pycrypto - Fatal编程技术网

Python Pycrypto-使用Crypto.Random生成密钥和初始化向量

Python Pycrypto-使用Crypto.Random生成密钥和初始化向量,python,pycrypto,Python,Pycrypto,Crypto.Random能否用于安全生成强密钥和初始化向量?根据,答案是肯定的: from Crypto.PublicKey import RSA from Crypto import Random rng = Random.new().read RSAkey = RSA.generate(1024, rng) 使用pycrypto() 更安全() >>来自versile.quick import VCrypto,VX509Crypto >>>用途='versilypython演示服务'

Crypto.Random能否用于安全生成强密钥和初始化向量?

根据,答案是肯定的:

from Crypto.PublicKey import RSA
from Crypto import Random
rng = Random.new().read
RSAkey = RSA.generate(1024, rng) 
使用pycrypto()

更安全()

>>来自versile.quick import VCrypto,VX509Crypto
>>>用途='versilypython演示服务'
>>>personal='我喜欢Monty Python幽默'
>>>密码='kLqnr37ubG'
>>>identity=VCrypto.lazy().dia(1024,目的,个人,密码)
>>>类型(标识)
>>>x509_pubkey=VX509Crypto.export_public_key(identity.public)
>>>打印(x509_pubkey)
-----开始RSA公钥-----
MIGJAoGBANpspNSQPXlq/tEBIq8pT31WYzcKFtX8b41k9ec5YqiJhgOf9WyK0UqTScOzLiySKun2
XBVjXRhok5kvyT32K+JYH2VWOONS0J6KFOHAATKMVDMVIFIHADZ7xC3+jf1zT0n/vAQE0+DEGKfS
de7je8eA/T4C7uwLKn98aY+oudFtAgMBAAE=
-----结束RSA公钥-----

ValueError:RSA模长度必须是我的
(2,6,0,'final',0)中256的倍数且>=1024
密钥和初始化向量用于分组密码和分组密码操作模式,如AES-CBC,而不是RSA。万能.crypto与PyCrypto有什么关系?使用MD5散列也不是使用PyCrypto.Random的安全方法。
>>> 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-----