首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MD5公钥加密(python)

MD5公钥加密(python)
EN

Stack Overflow用户
提问于 2019-03-11 07:26:45
回答 1查看 1.2K关注 0票数 0

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

我跟踪这个博客来加密和解密我的数据。它使用SHA256。我也可以用SHA1、SHA512成功地运行代码,但不能用MD5运行。

每当我将算法更改为MD5时,它会说

代码语言:javascript
复制
cryptography.exceptions.UnsupportedAlgorithm: This combination of padding and hash algorithm is not supported by this backend.

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

我的守则:-

代码语言:javascript
复制
# ########## 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
    )
)
EN

回答 1

Stack Overflow用户

发布于 2019-03-11 07:38:04

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55096978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档