Tag: hash

序列化HashSet

我正在尝试序列化Hashset,但我没有运气。 每当我尝试打开序列化数据时,我都会得到一个空的HashSet。 但是,List工作正常。 示例代码: [Serializable()] public class MyClass : ISerializable { public MyClass(SerializationInfo info, StreamingContext ctxt) { HashSet hashset = (HashSet)info.GetValue(“hashset”, typeof(HashSet)); List list = (List)info.GetValue(“list”, typeof(List)); Console.WriteLine(“Printing Hashset:”); foreach (string line in hashset) { Console.WriteLine(line); } Console.WriteLine(“Printing List:”); foreach (string line in list) { Console.WriteLine(line); } } public void GetObjectData(SerializationInfo info, StreamingContext ctxt) { […]

有关Data Protection API(DPAPI)的信息

我目前正在编写ac #mvc web应用程序,其中从用户获取密码并存储在数据库中 – sql server。 我需要一种散列密码的方法。 建议使用Data Protection API(DPAPI)。 我不喜欢它和互联网上的研究,很少有信息存在。 任何人都可以指出方向获取更多信息吗? 或者给我一个如何设置和使用它的概述等。

C#MD5是一个例子

编辑:由于代码按预期工作,我已将其重新编写为示例。 我正在尝试复制文件,获取MD5哈希,然后删除副本。 我这样做是为了避免原始文件上的进程锁定,这是另一个应用程序写入的。 但是,我正在锁定我复制的文件。 File.Copy(pathSrc, pathDest, true); String md5Result; StringBuilder sb = new StringBuilder(); MD5 md5Hasher = MD5.Create(); using (FileStream fs = File.OpenRead(pathDest)) { foreach(Byte b in md5Hasher.ComputeHash(fs)) sb.Append(b.ToString(“x2”).ToLower()); } md5Result = sb.ToString(); File.Delete(pathDest); 然后我在File.Delete() ‘上得到’进程无法访问文件’exception。 我希望using语句,文件流将很好地关闭。 我还尝试单独声明文件流,删除using ,并在读取后放置fs.Close()和fs.Dispose() 。 在此之后,我注释掉了实际的md5计算,并且代码被删除,文件被删除,所以看起来它与ComputeHash(fs) 。

Unhashing哈希C#

有人可以反转我正在使用的这个方便的哈希码吗? using System.Security.Cryptography; public static string EncodePasswordToBase64(string password) { byte[] bytes = Encoding.Unicode.GetBytes(password); byte[] inArray = HashAlgorithm.Create(“SHA1”).ComputeHash(bytes); return Convert.ToBase64String(inArray); } 我最终做的一切都失败了:(。

使用Base64编码的公钥来validationRSA签名

简而言之,这是我的问题: private string publicKeyString = “MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVGUzbydMZS+fnkGTsUkDKEyFOGwghR234d5GjPnMIC0RFtXtw2tdcNM8I9Qk+h6fnPHiA7r27iHBfdxTP3oegQJWpbY2RMwSmOs02eQqpKx4QtIjWqkKk2Gmck5cll9GCoI8AUAA5e0D02T0ZgINDmo5yGPhGAAmqYrm8YiupwQIDAQAB”; /* Some transformation required, using publicKeyString to initiate a new RSACryptoServiceProvider object */ //for now: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte[] selfComputedHash = new byte[]; //left out of the example byte[] signature = new byte[]; bool result = rsa.VerifyHash(selfComputedHash, CryptoConfig.MapNameToOID(“SHA1”), signature); 如您所见,问题是使用给定的Base64编码公钥字符串启动新的RSACryptoServiceProvider。 我已经能够使用对象RSAParameters进行实例化,该对象使用OpenSSL shell命令从用于此公钥字符串的Modulus和Exponent加载byte []。 但由于此公钥可能在将来发生变化,因此我希望能够将其以原始forms存储在数据库中。 必须有一种更直接的方法来解决这个问题。 到目前为止,我读过的很多例子都是通过将生成的私钥和公钥导入和导出密钥容器对象并在同一段代码中使用它来避免这个问题,因此不会“转移”密钥。一些字符串forms内存不足。 有些人在StackOverflow和其他网站上都表达了同样的问题,但我还没有找到令人满意的答案。 […]

如何从文本文件创建MD5哈希摘要?

使用C#,我想创建一个文本文件的MD5哈希。 我怎么能做到这一点? 请包含代码。 非常感谢! 更新:感谢大家的帮助。 我终于确定了以下代码 – // Create an MD5 hash digest of a file public string MD5HashFile(string fn) { byte[] hash = MD5.Create().ComputeHash(File.ReadAllBytes(fn)); return BitConverter.ToString(hash).Replace(“-“, “”); }

SQLite中的SHA1哈希:怎么样?

并行使用多个DB,需要使用散列密码初始化一些记录。 在MS SQL server有一些方便的函数可以动态散列: HashBytes(‘SHA1′, CONVERT(nvarchar(32), N’admin’)) SQLite是否有类似的function? 如果没有,这是最简单的解决方法(例如从SQL server选择并以某种方式将其插入到SQLite表中)? 首选的散列算法是SHA1 ,密码存储在BLOB列中。 更新:我在当前项目中使用C#语言。

获取字符串的SHA-256字符串

我有一些string ,我想使用C#使用SHA-256哈希函数对其进行哈希处理。 我想要这样的东西: string hashString = sha256_hash(“samplestring”); 框架中是否有内置function可以做到这一点?