MD5公私钥加密(python)

时间:2019-03-11 07:26:45

标签: encryption cryptography python-cryptography

我正在尝试使用非对称加密来加密我的数据。我选择了MD5作为算法。 PS:我知道MD5冲突。

我正在跟踪this blog来加密和解密我的数据。这使用SHA256。我也可以使用SHA1,SHA512成功运行代码,但不能使用MD5。

每当我将算法更改为MD5时,它就会显示

cryptography.exceptions.UnsupportedAlgorithm: This combination of padding and hash algorithm is not supported by this backend.

应该使用哪种填充来用MD5加密数据?

我的代码:-

# ########## Encrypting and decrypting ##########
message = b'encrypt me!'
encrypted = public_key.encrypt(
    message,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.MD5()),
        algorithm=hashes.MD5(),
        label=None
    )
)
original_message = private_key.decrypt(
    encrypted,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.MD5()),
        algorithm=hashes.MD5(),
        label=None
    )
)

1 个答案:

答案 0 :(得分:0)

实际上,MD5是(旧的)哈希算法,它不是加密算法。哈希用于获取给定文本(或数据字节数组)的某种“校验和”。不管您散列的文本大小如何,该“校验和”都是固定长度。

在密码术中,通常可以使用哈希函数从密码短语中获取私有(对称)密钥,也可以使用私有密钥对哈希进行加密:这是数字签名。