C# object.GetHashCode 的 .net 实现中是否存在任何漏洞?
信息安全
哈希
拒绝服务
。网
Python
2021-08-24 01:40:11
1个回答
列出的散列方法(由公共对象提供以符合标准集合使用的接口的方法)的目的是将计算散列的所有可能值映射到散列值类型的有效值的全部范围。此映射中使用的随机性不是为了安全。映射必须足够随机,以便序列和常见模式不会导致在使用基于散列的集合通用的桶时分布不均匀。
散列映射、多映射和集合可用于更大的安全方案,但它们本身并不安全。它们只是旨在提供索引查找的集合。以这种方式使用的哈希提供比二叉树更快的索引。
术语 hashCode 实际上以这种方式具有误导性。为字符串类型创建哈希以便可以使用这样的字符串对哈希映射进行索引不是一种编码。这种散列算法产生的散列值可能会映射回大量对象值,但在此上下文中的目的不是要对攻击者隐藏这些对象值。
对于安全协议中使用的 MD5 或 SHA 哈希算法,其目的是在任何实际可实现的尝试次数中创建从哈希中猜测输入值的数学上低概率。这些语言中的通用对象提供的方法,以便它们可以插入到使用存储桶索引它们的集合中,绝不应该使用这些方法来替代设计用于安全协议的哈希算法。
其它你可能感兴趣的问题