我正在使用Java
scrypt库
进行密码存储。当我加密事物时N
,它需要一个r
和p
值,其文档称为“
CPU成本”,“内存成本”和“并行化成本”参数。唯一的问题是,我实际上不知道它们的具体含义,或者对他们有什么好的价值。也许它们以某种方式对应于Colin
Percival原始应用程序上的-t,-m和-M开关?
有人对此有任何建议吗?该库本身列出了N = 16384,r = 8和p = 1,但是我不知道这是强还是弱还是什么。
首先:
cpercival 在他2009年的幻灯片中提到了一些
即使在今天(2012-09年),这些值也足以用于一般用途(某些WebApp的密码数据库)。当然,具体取决于应用程序。
同样,这些值(大部分)表示:
N
:一般工作系数,迭代次数。r
:用于基础哈希的块大小;微调相对内存成本。p
:并行化因子;微调相对的cpu成本。r
并且p
是为了适应潜在的问题,随着预期的CPU速度和内存大小和带宽不增加。如果CPU性能提高更快,那么您p
应该增加,而内存技术上的突破则应该提高一个数量级r
。并且N
可以跟上每
隔一段时间 性能的一般翻番的情况。
重要: 所有值都会改变结果。(更新:)这就是为什么所有scrypt参数都存储在结果字符串中的原因。
我使用Java scrypt库存储密码。当我加密东西时,它会调用、和值,它的文档将这些值称为“CPU成本”、“内存成本”和“并行化成本”参数。唯一的问题是,我不知道它们的具体含义,也不知道它们有什么好的价值观;也许它们与Colin Percival最初应用程序上的-t、-m和-m开关有某种对应? 有人对此有什么建议吗?库本身列出了N=16384,r=8,p=1,但我不知道这是强是弱还是什么。
问题内容: 我刚开始学习Go,并通读现有代码以学习“其他人的做法”。在这种情况下,遍历使用go“工作区”,尤其是与项目依赖关系有关的地方。 在处理各种Go项目时,使用一个或多个Go工作区(即$ GOPATH的定义)的常见(或存在)最佳实践是什么?我应该期望有一个类似于我所有项目的中央代码存储库的Go工作区,还是在我处理这些项目时都明确将其分解并设置$ GOPATH(有点像python) virtu
问题内容: 根据您的经验,您可以推荐一些东西吗?我使用了izpack,它是一个非常不错的工具,还有其他更好的工具吗? 问题答案: 在MS Windows中,NSIS很棒,它是免费的,并且OSS 参考:具有自动JRE安装的Java启动器
我想在处理草图显示上标记点,但是只显示一个像素,这在我的显示器屏幕上几乎看不到,所以我想把它稍微大一点。请问,用四个或九个像素而不是一个像素来标记一个点的最佳方式是什么?我可以使用或,但它们看起来像一个大锤和螺母解决方案。也许在这个点周围画一个3x3的正方形可能是最好的,但我想问的是,如果已经有一个众所周知的解决方案可用的话。
我一直在为Linux寻找一个好的加密git凭证助手(可以以加密的方式存储密码,并在以后检索它们,符合git-credential协议),我真的很惊讶,似乎没有太多出现。 在我所看到的所有git文档和相关git凭证文档中,他们甚至都没有提到这种东西的存在。它总是提到适用于Mac的osxkeychain,但如果您正在运行Linux,它只会将您重定向到解释如何使用“缓存”作为助手的文档。一些参考资料提到
我们有一个使用基于cron的调度的工作流程。我们需要支持一个用例来更改cron表达式。 这样做的最佳做法是什么?