【发布时间】:2015-11-27 19:15:22
【问题描述】:
希望对 AES 问题有一些澄清/理解,我是加密新手,所以请耐心等待。
我的任务是为客户加密数据。我已经使用RijndaelManaged 和SHA256 编写了一个c# 类,用于基于this article 的密码哈希,我在Stack Overflow 上找到了。我使用随机的 4 字节盐值以及附加到原始数据预加密的静态 8 字节盐值。
我选择使用 AES 128 位加密,因为 256 位要慢得多(在我的应用程序中约为 35%),并且在这种情况下过度杀伤,因为它不是非常敏感的数据(但我们的客户要求它)静态加密)。下一个性能瓶颈似乎是迭代次数,我的迭代次数为 1000。在测试中,加密 10K 值大约需要 4 分钟,不算糟糕,但也不是很好。将迭代次数减少到 100 次,缩短到大约 1.5 分钟。
由于速度是关键,我正在寻找确认,如果我使用来自 http://passwordsgenerator.net/ 的大量 256 个字符(随机;任何字母/符号)密码,我可以安全地减少 @987654325 上的迭代计数器@。
我是否正确,因为迭代主要用于向低熵密码添加熵?将迭代次数减少到 1000 次以下(这似乎是公认的阈值)是否弊大于利?
干杯。
【问题讨论】:
标签: c# cryptography aes