首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对文件进行随机解密

如何对文件进行随机解密
EN

Stack Overflow用户
提问于 2021-12-22 16:24:36
回答 1查看 667关注 0票数 0

Iam使用查查普1305加密多个文件,密码使用KDF。我可以加密文件,但是如何用随机的现在解密。这个函数写着永远不要重用现在,但是我是如何用随机的非says来解密的。

如果我重新使用现在的文件加密,那么它有多安全。

有人问过类似的问题,但解决方案不是很好

Eg码

代码语言:javascript
复制
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305

kdfpass = PBKDF2HMAC(
    algorithm=hashes.SHA256(),
    length=32,
    salt=salt,
    iterations=5
)

password = kdfpass.derive(b'Password@123')
salt = b'123456789520'
original = b'Hellow123'

chacha = ChaCha20Poly1305(password)

encrypted = chacha.encrypt(os.urandom(12), original, salt)
print(encrypted)

decrypted = chacha.decrypt(os.urandom(12), encrypted, salt)
print(decrypted)

有没有办法保存现在并检索它以便解密。

还想知道chacha-poly1305是否是一个足够好的加密。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 18:37:30

在这种情况下,您使用不同的非case加密和解密。在这种情况下,nonce的目的是允许在不损害安全性的情况下重用密钥。

使用相同的时间加密和解密消息是安全的,事实上,您必须这样做才能正常工作。但是,对于多个消息,您不能重用相同的键/当前对。这既允许篡改消息,也允许婴儿床拖拽攻击,这可能泄露明文。

ChaCha20-Poly1305被认为是强大和健壮的。然而,由于小的现在大小,你不应该使用随机的不与它因为碰撞的风险。相反,从CSPRNG中为每条消息生成一个随机盐,从KDF派生该消息的键和名,然后将salt放在消息的前面,而不是现在。解密时,移除盐,重新派生密钥,然后使用这些密钥进行解密。或者,如果您有XChaCha20-Poly1305 (请注意X),那么现在的大小(192位)足够大,可以使用随机的非use。

另外,请注意,PBKDF2虽然仍然安全,但不再被认为是基于密码的密钥派生函数的最先进的状态,而still或Argon2id是首选。此外,5次迭代是非常弱的,您的代码很容易受到暴力攻击,特别是使用这种强度的密码。

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

https://stackoverflow.com/questions/70452153

复制
相关文章

相似问题

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