加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 最快的哈希码生成器.NET

发布时间:2020-12-15 23:52:29 所属栏目:百科 来源:网络整理
导读:我正在为C#中的System.Drawing.Point类实现自定义GetHashCode.我的方法目前无法满足以下要求: var hashA = MyGetHashCode(new Point(1,0));var hashB = MyGetHashCode(new Point(0,1));var hashC = MyGetHashCode(new Point(0,0));var hashD = MyGetHashCod
我正在为C#中的System.Drawing.Point类实现自定义GetHashCode.我的方法目前无法满足以下要求:

var hashA = MyGetHashCode(new Point(1,0));
var hashB = MyGetHashCode(new Point(0,1));
var hashC = MyGetHashCode(new Point(0,0));
var hashD = MyGetHashCode(new Point(1,1));
Assert.AreNotEqual(hashA ^ hashB,hashC ^ hashD);

要通过此测试,我确信使用新的SHA256Managed().ComputeHash(currentHash)可以.但是还有其他更快的哈希算法吗?我知道SHA256是关于安全性的,我不需要它.

解决方法

一个简单的哈希?怎么样的东西:

(17 * point.X) + (23 * point.Y);

或者更明显的熵:

int hash = -1047578147;
hash = (hash * -1521134295) + point.X;
hash = (hash * -1521134295) + point.Y;

(来自C#的匿名类型代码的数字)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读