草庐IT

哈希环

全部标签

c# - 在列表上创建哈希值?

我有一个List其中有50个实例。每个实例都有1或2个独特的属性,但在某种程度上它们都是唯一的,因为列表中的位置只有一个,等等。我想想出一种独特的方法来“散列”这个列表,使其与所有其他列表不同。在.NET4中是否有一种聪明的方法来做到这一点?目的是为列表创建一种“monniker”,以便可以将它们转储到队列中,并在以后根据它们的唯一值找到它们。谢谢。 最佳答案 长话短说publicstaticintGetSequenceHashCode(thisIListsequence){constintseed=487;constintmodi

c# - 是否可以复制 .NET HashAlgorithm(用于重复的增量哈希结果)?

我有以下用例:从一个文件中读取n个字节计算这n个字节的(MD5)散列从文件中读取下m个字节为最多n+m字节的文件计算(MD5)哈希增量散列文件不是问题,justcallTransformBlockandTransformFinalBlock.问题是我需要共享其起始字节的多个数据散列,但在我调用TransformFinalBlock读取第一个n的Hash之后bytes我不能继续使用同一个对象进行哈希处理,需要一个新对象。搜索问题时,我看到Python以及OpenSSL可以选择为此目的复制哈希对象:hash.copy()Returnacopy(“clone”)ofthehashobject

c# - 如何在 C# 中使用 PBKDF2 HMAC SHA-256 或 SHA-512 使用 salt 和迭代对密码进行哈希处理?

我想找到一种解决方案或方法,允许我添加盐并控制迭代次数。nativeRfc2898DeriveBytes基于HMACSHA1。理想情况下,使用SHA-256或SHA-512将使系统经得起future考验。这是迄今为止我找到的最好的例子:http://jmedved.com/2012/04/pbkdf2-with-sha-256-and-others/但是当我用SHA-256运行它时,它实际上比SHA-512慢。我使用了64k次迭代、salt的guid和不同的相同长度的密码来进行比较。我还找到了这个解决方案:http://sourceforge.net/projects/pwdtknet

c# - 使用文档哈希比较签名的 PDF 和未签名的 PDF

经过广泛的谷歌搜索后,我开始怀疑我是否以某种方式遗漏了数字签名的要点。这基本上是我认为我原则上应该能够做的事情,我希望iTextSharp允许我:我正在用C#和.NET编写,并使用iTextSharp来解析PDF文件。我有一个未签名的PDF文件,还有一个相同文件的签名版本。我知道数字签名从根本上对PDF数据进行哈希处理,使用私钥对其进行加密,然后验证过程的一部分是使用公钥对其进行解密,并确保再次进行哈希处理时结果与PDF数据匹配。除此之外,我想获取这个解密的文档哈希,并将其与从我的未签名PDF生成的文档哈希进行比较。这是因为我不仅要验证签名的PDF是真实的,还要验证它是否与我记录在案的

c# - 具有单个键的多个值的哈希表

我想在单个键中存储多个值,例如:HashTableobj=newHashTable();obj.Add("1","test");obj.Add("1","Test1");现在这会引发错误。 最佳答案 您可以将您的test,test1,test2,...放入一个表中,然后将该表放入一个哈希表中作为对所有表都相同的键的值。例如尝试这样的事情:Listlist=newList();list.Add("test");list.Add("test1");然后:HashTableobj=newHashTable();obj.Add("1",li

c# - 哈希表到 Dictionary<> syncroot 。

哈希表具有同步根属性,但通用字典没有。如果我有这样做的代码:lock(hashtable.Syncroot){....}如果我要删除哈希表并更改为通用词典,我该如何复制它? 最佳答案 如果您严格要求兼容性,那么Bryan是正确的。这是在字典之上维护当前语义的最佳方式。虽然扩展了它。SyncRoot属性没有直接添加到通用字典的原因是它是一种危险的同步方式。它只比非常危险且容易出现死锁的“lock(this)”好一点点。这里有几个链接说明了为什么这是不好的。http://blogs.msdn.com/bclteam/archive/20

C# - 使用自定义键定义哈希集

我正在使用C#中的HashSet和Dictionary来实现图结构。当HashSet键是自定义类时,我对HashSet元素的唯一性有疑问。我这里有:publicclassPoint{publicintx{get;set;}publicinty{get;set;}}publicclassVertex{publicVertex(Pointpoint){VertexLabel=point;}publicPointVertexLabel{get;privateset;}}publicclassEdge{publicEdge(Vertexto,Vertexfrom,doubleweight){F

c# - 对哈希集进行排序 .Net 3.5

如何对HashSet进行排序在c#.Net3.5中? 最佳答案 你不知道。根据定义,HashSet是未排序的。如果你想要一个排序的哈希集,那么你应该使用SortedSet.它公开的方法本质上是HashSet提供的方法的超集,包括对其内容进行排序的能力。 关于c#-对哈希集进行排序.Net3.5,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10495770/

c# - 从哈希集中获取随机元素?

我使用以下代码将我的文本文件加载到哈希集。HashSethashs=newHashSet(File.ReadLines("textFile.txt"));想知道是否有任何简单的方法可以从中获取随机行?假设textFile.txt包含10行,我想随机化并获取其中一行。 最佳答案 无需每次都枚举整个数组,就可以像公认的那样得到一个简单的答案:privatestaticreadonlyRandomrandom=newRandom();privatestaticreadonlyHashSethashset=newHashSet();...T

c# - 为什么在 sql server 中生成的 MD5 哈希值不相等?

这个问题在这里已经有了答案:TSQLmd5hashdifferenttoC#.NETmd5(4个答案)关闭7年前。我在SQLServer2008R2中有一个表,其中包含两个字段(WordHash、Word)。此Hash字段在C#中生成,我需要为sqlserver中的Word字段重新生成哈希码。但我的问题是在sqlserver和C#中生成的MD5哈希是不同的。我发现下面的代码可以解决这个问题,但我仍然遇到同样的问题。SQL代码:CONVERT(NVARCHAR(32),HASHBYTES('MD5','someword'),2)将此代码块放入我的查询后,我看到了一些连线结果!这是我的结果