PBEKeySpec iterationCount 和 keyLength 参数有何影响?

2024-02-22

深入研究 java 加密和哈希世界,我看到了构造函数的示例PBEKeySpec具有不同值的类iterationCountkeyLength参数。似乎没有什么可以解释这些参数的影响或含义。

我假设keyLength是密钥的长度,因此 32 位加密将采用 32 作为密钥长度,但这种假设感觉是错误的。我的猜测是iterationCount是每个字符被加密的次数,同样也没有感受到对这个假设的喜爱。

感谢信息或解释的链接。


迭代计数是在派生对称密钥期间对密码进行哈希处理的次数。数字越大,验证密码猜测并得出正确密钥的难度就越大。它与盐一起使用,盐用于防止使用彩虹表的攻击。迭代计数应该尽可能高,而不会使您自己的系统速度减慢太多。迭代计数的更通用术语是工作因素.

密钥长度就是长度in bits派生的对称密钥。 DESede 密钥的长度可以是 128 或 192 位,包括奇偶校验位。 AES 密钥的长度可以是 128、192 或 256 位。问题是 API 没有指定密钥长度(位/字节,带或不带奇偶校验);为了PBEKeySpec密钥大小为位,包括本节中所示的奇偶校验位。

密钥派生函数通常只输出“足够”的随机位,因此您仍然可以指定所需的密钥大小。


Notes:

  • 欲了解更多信息,请查看标准 https://www.rfc-editor.org/rfc/rfc2898, PKCS 标准往往相对容易阅读。
  • 盐只需是唯一的即可;通常,这是通过使用安全随机数生成器创建 64 至 256 位完全随机盐来实现的(对于 Java 来说,这意味着使用new SecureRandom()进而nextBytes(int amount))。盐可以是公开的并与密文或密码哈希一起存储。
  • 为密钥大小指定任何大于哈希输出大小(默认情况下为 SHA-1,160 位输出大小)的值可能会失败(对于 PBKDF1)或导致额外的速度减慢(对于 PBKDF2)。不建议;只需使用算法规范中的 SHA-256、SHA-512 等哈希函数即可。
  • SHA-1(有时简称 SHA,因为从未使用过 SHA-0)和evenMD5 对于此类功能仍然是完全安全的(因为它不依赖于碰撞抵抗),但您仍然应该为新协议选择更安全的选项,例如 SHA-256 或 SHA-512。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PBEKeySpec iterationCount 和 keyLength 参数有何影响? 的相关文章

随机推荐

  • JavaScript 中的鼠标光标位置?

    如何在javascript中获取光标X和Y var curX ns6 e pageX event clientX ietruebody scrollLeft var curY ns6 e pageY event clientY ietrue
  • 从字典的字典创建内部值的列表

    我试图找出字典内部值的最大值和最小值dicts The dict看起来像这样 ALLEN PHILLIP K bonus 4175000 exercised stock options 1729541 expenses 13868 BADU
  • 为什么 MongoDb 文档 id 前面有一个下划线?

    为什么 MongoDb 文档 id 前面有一个下划线 为什么不称其为 id 而不是 id 这是我不知道的命名约定的一部分吗 您可能会注意到 MongoDB 有很多函数 在 shell 中 和字段以 understore 开头 表示它们是内部
  • 如何在 WordPress 中创建自定义用户角色 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我必须在 WordPress 中为用户创建审阅者 自定义 角色 如何创建自定义规则 您可以使用add role https devel
  • 带有参数 url 创建的 symfony2 twig 路径

    我得到以下信息 a href Aktivieren a creates 后端 类别 激活 8 1 然后我得到了 a href 这创造了 类别 id 1 看到不同 我想要的是在第二种情况下与第一种情况完全相同 类别 1 我该如何处理这个问题
  • 在 C# 中查询事件日志中消息内容的最简单方法是什么?

    我对 感兴趣编写一些代码来查询 Windows 事件日志以获取特定的错误消息内容 如中所述这篇 MSDN 文章 http msdn microsoft com en us library bb671200 28v vs 90 29 aspx
  • Django 中的 {% %} 和 {{ }}

    我正在学习 Django 遇到了 2 组特殊字符 我以前从未见过这样使用过 我可以猜测它们在示例中的用途 但不了解它们的范围 他们是 if registered user form as p 我添加了if registered and us
  • 为什么“inline-block”元素会自动清除它们的子元素?

    display inline block用于许多clearfixes 1 http css tricks com snippets css clear fix 2 http perishablepress com lessons learn
  • asp.net 中的后台工作者(线程池)

    我有一个 ASP NET Web 表单 它将大约 25 30 个项目 包含用户从表单发出后续请求时所需的信息 写入自定义缓存中 目前 所有这些都是在主线程上同步发生的 但在较高负载下 addcache 正在成为瓶颈 如何在后台运行此任务而不
  • 如何将 BeautifulSoup.ResultSet 转换为字符串

    所以我解析了一个html页面 findAll BeautifulSoup 到名为变量result 如果我输入result在 Python shell 中然后按 Enter 我看到了预期的普通文本 但是当我想将此结果作为字符串对象进行后处理时
  • Laravel 连接 3 个表

    我正在构建一个类似 Twitter 的应用程序 有一个提要 我只想在其中显示我关注的用户的帖子 我尝试了所有连接 但似乎没有任何效果 我有3张桌子 Users Followers Shares 表格如下所示 Users id 追随者 use
  • 您可以将注释目标限制为某个类的子类吗?

    您能否限制注释的目标必须属于某个类 我想创建一个新的验证约束来限制上传的文件类型 约束注释只能出现在 MultipartFile 属性上 而不能出现在 String 或类似的属性上 我该如何限制这个 不在编译时 可用于注释放置的唯一限制是元
  • win7下通过命令行刷新壁纸

    我想从命令行刷新 Windows 7 中的壁纸 我正在通过设置壁纸reg exe add rundll32 exe user32 dll UpdatePerUserSystemParameters不起作用 与1 True or 1 Fals
  • 如何创建所有位都 = 1 的 long 值

    我尝试了以下方法 public static final long DEVICE ID UNKNOWN 0xFFFFFFFFFFFFFFFF 但这会导致 The literal 0xFFFFFFFFFFFFFFFF of type int
  • 如何在 C# 中使用 LINQ 比较两个 List

    这两个列表就像 LISTONE ONE TWO THREE LISTTWO ONE TWO THREE 我需要比较两个列表中的项目是否按相同顺序排列 有没有办法在 LINQ 中做到这一点 Maybe bool equal collectio
  • 如何在Unity3D中为Android启用多dex选项?

    在使用 Unity 构建时 我收到错误 trouble writing output Too many method references 78849 max is 65536 You may try using multi dex opt
  • 使用 Django Rest Framework 进行非用户连接的自定义身份验证

    我已使用 TokenAuthentication 通过 DRF 启用用户身份验证 REST FRAMEWORK DEFAULT AUTHENTICATION CLASSES rest framework authentication Tok
  • API 调用后有状态小部件上的抖动计时问题

    我遇到了计时问题 我从 api 获取数据 然后从 JSON 创建列表 我认为使用结果列表的长度作为列表视图中的项目计数 但是 它会在 itemcount 上引发空错误 然后完成处理并呈现列表视图 我试图找到计时问题出在哪里以及如何处理项目和
  • 我如何知道“程序集”是否真的发生了变化?

    我在 VS2005 中创建了一个简单的 Hello World 应用程序 这是一个简单的控制台应用程序 它只包含以下几行 Console WriteLine Hello World Console ReadLine 当我尝试在不执行任何更改
  • PBEKeySpec iterationCount 和 keyLength 参数有何影响?

    深入研究 java 加密和哈希世界 我看到了构造函数的示例PBEKeySpec具有不同值的类iterationCount和keyLength参数 似乎没有什么可以解释这些参数的影响或含义 我假设keyLength是密钥的长度 因此 32 位