Tag: 哈希

c#如何找到两个对象是否相等

我需要知道比较两个对象的最佳方法,并找出是否相同。 我正在重写GethashCode和Equals。 所以一个基本类看起来像: public class Test { public int Value { get; set; } public string String1 { get; set; } public string String2 { get; set; } public override int GetHashCode() { return Value ^ String1.GetHashCode() ^ String2.GetHashCode(); } public override bool Equals( object obj ) { return GetHashCode() == obj.GetHashCode(); } } 所以出于测试目的,我创建了两个对象: […]

哪种算法首选散列密码C#?

可能重复: 我应该使用什么算法将密码哈希到我的数据库中? 我是密码新手。 我读了哈希+盐使密码真的很安全。 但仍然困惑我应该使用哪种哈希算法,因为有很多像。 MD5CryptoServiceProvider SHA1Managed SHA256Managed等 我怎样才能决定哪一个对我有利或者一切都是平等的。 我可以盲目接受任何人吗?

我怎样才能在C#中使用SHA512字符串?

我试着写一个函数来取一个字符串和sha512就像这样? public string SHA512(string input) { string hash; ~magic~ return hash; } 魔术应该是什么? PS我尝试了以下内容,但hash最终仍然是64字节长(不是预期的128)。 byte[] data = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; byte[] hash; SHA512 shaM = new SHA512Managed(); hash = shaM.ComputeHash(data); 提前致谢!

使用C#将多个byte 一起散列为单个哈希?

我有三个字段: string Title , byte[] Body和byte[] Data ,我想从中计算单个哈希作为检查以确保它们没有被篡改或损坏。 在Python中,我可以连续几次使用md5.update()来执行此操作。 但我在C#中找不到类似的function。 要使用MD5.ComputeHash(),我需要将所有源代码复制到单个字节[]中,这是我要避免的一个步骤。 如何将它们一起散列为一个哈希,而不必将数据复制到临时缓冲区?

在Dictionary键中发生哈希冲突会发生什么?

我一直用c ++和java编写我的生活,但在C#上,我觉得这是一个完全不同的动物。 如果在c#中的Dictionary容器中发生哈希冲突,它会怎么做? 或甚至检测到碰撞? 在SDL中类似容器中发生冲突的情况下,有些会使键值部分将数据链接到键值部分,如链表,或者有些人会尝试找到不同的哈希方法。 [2010年6月4日上午10:56更新] 我想为每个用户制作一个计数器。 并且设置用户#没有定义,它可以增加或减少。 我期待数据的大小超过1000。 所以,我想: 快速访问最好不要O(n),重要的是我因为要求而接近O(1),我需要确保我能够在他们能够执行傻事之前强制注销人。 动态增长和缩小。 独特的数据。 Hashmap是我的解决方案,似乎Dictionary与c#中的hashmap相似…

为什么C#为相同的源代码生成不同的EXE?

每次我们重新编译C#应用程序时,我们都会得到具有不同MD5签名的EXE。 我们在相同的机器上重新编译,相隔几分钟。 为什么相同的源代码不会产生相同的输出? 有没有办法来解决这个问题?

这是在Db中加密和存储密码的方法吗?

有几种方式(即使在这里也是如此)并且他们都提到在数据库上保存密码的最佳方法是保存密码,而不是密码,而是存储盐渍密码的哈希值 。 我的问题很简单,把一些代码放在上面,这是正确的方法吗? string username = “myUsr”; string password = “myPwd”; DateTime createDate = DateTime.UtcNow; // Salt it string saltedPwd = String.Concat(password, createDate.Ticks.ToString()); // Hash it HMACSHA1 hash = new HMACSHA1(Encoding.Unicode.GetBytes(Helper.EncryptKey)); string encodedPwd = Convert.ToBase64String( hash.ComputeHash(Encoding.Unicode.GetBytes(saltedPwd))); // Create User in the database db.CreateUser(username, encodedPwd, createDate); 数据库用户表 user_id | username | password | create_date | last_access […]

哪个.NET包含哈希算法足够安全,可以进行密码哈希?

LinkedIn的密码泄露certificate了安全地散列密码的重要性。 但是,即使使用“正常”哈希算法(例如MD5和SHA系列)对盐进行散列密码也不安全,因为它们针对速度进行了优化,这使得黑客每秒计算2300万次哈希(蛮力)。 有一些散列算法更安全,因为它们更加计算密集,例如PBKDF2 , Bcrypt ,PBMAC和scrypt 。 但是,这些散列算法似乎不包含在.NET框架中。 那么,.NET框架中包含哪些性能密集的哈希算法? 解答: PBKDF2包含在框架中, 本网站显示了如何正确使用它 。

C#中字符串的快速哈希函数

我想要将长度为60的字符串哈希。如果时间紧迫,那么最好的做法是什么。 该function将被调用超过1亿次。 目前我正在使用以下代码, static UInt64 CalculateHash(string read, bool lowTolerance) { UInt64 hashedValue = 0; int i = 0; while (i < read.Length) { hashedValue += read.ElementAt(i) * (UInt64)Math.Pow(31, i); if (lowTolerance) i += 2; else i++; } return hashedValue; }

我可以依赖GetHashCode()的值来保持一致吗?

假设使用相同的字符串值,GetHashCode()的返回值是否保证一致? (C#/ ASP.NET) 我今天将我的代码上传到服务器,令我惊讶的是我不得不重新索引一些数据,因为我的服务器(win2008 64位)与台式机相比返回了不同的值。