0

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

我正在关注这个博客来加密和解密我的数据。这使用 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
    )
)
4

1 回答 1

0

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

在密码学中,您通常可以使用哈希函数从密码短语中获取私有(对称)密钥,或者您可以使用私有密钥加密哈希:这是一个数字签名。

于 2019-03-11T07:38:04.450 回答