我的应用程序中有很多短字符串要解密, 解密速度 至关重要。
目前我正在试验 RNCryptor
但发现它的默认设置对于我的用例来说有点慢。否则它是一个很棒的框架:-)
加密 只会执行一次,因此它的性能并不重要。
我可以放弃保护速度,因为我只想拥有一个非常基本的加密。
您建议使用哪些 RNCryptor
设置来加密和解密以实现最快的解密性能?一个简短的代码示例会很棒!
同样,我对当前用例的非常基本的加密保护感到满意。
最佳答案
RNCryptor 的大部分时间都在调用 PBKDF2。它迭代 20,000 次(每个键 10,000 次)。虽然在即将推出的 RNCryptor 版本中它可能会变快一点,但基于密码的加密总是很慢。这是一项安全功能;它是故意慢的。它的设计速度很慢,使攻击者感到沮丧,同时对最常见的用例产生可接受的影响。
通过使用基于 key 而不是基于密码的方法,您可以显着提高性能。基于键的方法没有注入(inject)减速。如果可能,这将是我推荐的方法。生成两个随机的 256 位 key 而不是使用密码。
您可以将 PBKDF2 迭代次数设置为较小的数字(例如,这在处理 JavaScript 时是必需的),但是生成 key 的速度越快,安全性就越差。
有多种方法可以修改格式以提高用例的性能,但很容易弄乱它并严重损害安全性。正如@Zaph 所指出的,在修改任何安全框架之前,我要么进行大量研究,要么聘请专家。
关于ios - RNCryptor:更改哪些设置以提高性能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20161106/