相关疑难解决方法(0)

使用PyCrypto AES 256加密和解密

我正在尝试使用PyCrypto构建两个函数,它们接受两个参数:消息和密钥,然后加密/解密消息.

我在网上发现了几个链接来帮助我,但每个链接都有缺陷:

在codekoala上的这个使用os.urandom,PyCrypto不鼓励这样做.

而且,我给函数的关键不能保证具有预期的确切长度.我该怎么做才能实现这一目标?

此外,还有几种模式,建议使用哪种模式?我不知道该用什么:/

最后,究竟是什么?我可以为加密和解密提供不同的IV,还是会以不同的结果返回?

这是我到目前为止所做的:

from Crypto import Random
from Crypto.Cipher import AES
import base64

BLOCK_SIZE=32

def encrypt(message, passphrase):
    # passphrase MUST be 16, 24 or 32 bytes long, how can I do that ?
    IV = Random.new().read(BLOCK_SIZE)
    aes = AES.new(passphrase, AES.MODE_CFB, IV)
    return base64.b64encode(aes.encrypt(message))

def decrypt(encrypted, passphrase):
    IV = Random.new().read(BLOCK_SIZE)
    aes = AES.new(passphrase, AES.MODE_CFB, IV)
    return aes.decrypt(base64.b64decode(encrypted))
Run Code Online (Sandbox Code Playgroud)

python encryption padding pycrypto initialization-vector

153
推荐指数
9
解决办法
35万
查看次数

python中的十六进制字符串到字节数组

我有一个长十六进制字符串,表示一系列不同类型的值.我希望将此Hex字符串转换为字节数组,以便我可以将每个值移出并将其转换为适当的数据类型.

python bytearray

130
推荐指数
4
解决办法
26万
查看次数