我试图用非对称加密来加密我的数据。我选择了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
)
)发布于 2019-03-11 07:38:04
实际上,MD5是一种(旧的)哈希算法,它不是加密算法。散列用于获取给定文本(或数据字节数组)的“校验和”。那个“校验和”作为一个固定长度,不管你散列的文本的大小。
在密码学中,您通常可以使用散列函数从密码中获取私有(对称)密钥,或者使用私钥加密哈希:这是数字签名。
https://stackoverflow.com/questions/55096978
复制相似问题