草庐IT

c# - 如何使用 C# 为我的 WinRT 应用程序生成 MD5 哈希码?

我正在创建一个MetroStyle应用程序,我想为我的字符串生成一个MD5代码。到目前为止,我用过这个:publicstaticstringComputeMD5(stringstr){try{varalg=HashAlgorithmProvider.OpenAlgorithm("MD5");IBufferbuff=CryptographicBuffer.ConvertStringToBinary(str,BinaryStringEncoding.Utf8);varhashed=alg.HashData(buff);varres=CryptographicBuffer.ConvertBi

C#:如何生成短的MD5码?

当我使用MD5加密对23进行加密时,我得到了37693cfc748049e45d87b8c7d8b9aacd这个32字符长的字符串,对于23,它始终是静态的。我想要相同类型的机制,但应该生成18个或更少(如:122ff1e4883358b6)个字符的长字符串,而不是32个。我如何在C#中做到这一点,在C#中是否有更短版本的MD5?? 最佳答案 我喜欢@RichieHindle的回答。但是,如果您希望丢失更少的保真度(从而降低冲突风险),您可以采用MD5哈希返回的128位值,并使用ASCII85对其进行编码。(也称为Base85编码)

c# - 如何从文本文件创建 MD5 散列摘要?

我想使用C#创建一个文本文件的MD5散列。我怎样才能做到这一点?更新:感谢大家的帮助。我终于确定了以下代码-//CreateanMD5hashdigestofafilepublicstringMD5HashFile(stringfn){byte[]hash=MD5.Create().ComputeHash(File.ReadAllBytes(fn));returnBitConverter.ToString(hash).Replace("-","");} 最佳答案 这是我目前正在使用的例程。usingSystem.Security.C

c# - 三元运算符 VB 与 C# : why resolves Nothing to zero?

这个问题在这里已经有了答案:IsNothingequaltoDefault?(5个答案)关闭5个月前。我只是搬起石头砸自己的脚,想知道是否有真正的原因使这种情况成为可能。反正这个问题可以留着,方便以后的射手们。假设我们在vb.net中有一个可为null的值:DimiasInteger?我们想根据条件并使用三元运算符为其分配一个值,因为它非常简洁:i=If(condition(),Nothing,42)也就是说,如果一个条件是true,使用可空性,否则使用值。射击发生在这一点上。无缘无故,VB编译器决定Nothing的通用基类型和Integer是Integer,此时它会默默地将语句翻译为

c# - 如何在C#中使用SHA1和MD5?(性能和安全性哪个更好)

在C#中我们如何自动使用SHA1?SHA1比MD5好吗?(我们对用户名和密码使用散列,需要速度进行认证) 最佳答案 不确定您所说的自动是什么意思,但您确实应该使用SHA256及更高版本。还有总是useaSalt(code)与你的散列。附带说明,在时间过去之后,使用强化哈希远比使用普通的基于速度的哈希函数要好得多。即:散列数百次迭代,或使用已经证明的散列函数,例如bcrypt(我相信下面会提到)。在.NET中使用SHA256哈希函数的代码示例如下:byte[]data=newbyte[DATA_SIZE];byte[]result;u

c# - 为什么不引发 "Divide by Zero"或任何其他异常?

我有一个正在执行LINQ操作的double[]:MD=MD.Select(n=>n*100/MD.Sum()).ToArray();在某些情况下,MD的所有元素都为0,则Sum也为零。然后0*100=0/0,但它没有给出被零除异常或任何异常。为什么会这样? 最佳答案 试试这个:doublex=0.0;doubley=1.0;doublez=y/x;这也不会抛出异常:它会将z保留为正无穷大。这里没有特定于LINQ的内容-它只是IEEE-754浮点算术行为。在您的例子中,您将零除以零,所以您最终得到的不是数字。

MD5有哪些特性,常用的MD5加密真的安全吗

在密码学中,MD5是比较常用的算法之一。大家都知道MD5曾一度被认为十分安全,并且在国内外得到广泛适用。然而,王小云教授的研究证明利用MD5算法的磕碰能够严重威胁信息体系安全,因此引发了密码学界的轩然大波。那么,关于MD5算法你了解多少,它有哪些特性,我们常用的MD5加密真的安全吗?MD5简介MD5全名Message-DigestAlgorithm5(信息-摘要算法)是一种不可逆的加密算法。可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5的特性压缩性:任意长度的数据,算出的MD5值长度都是固定的。容易计算:从原数据计算出MD5值很容易。抗修改性

c# - 使用 MD5.Create 和 MD5CryptoServiceProvider 有什么区别?

在.NET框架中,似乎有几种方法可以计算MD5哈希值,但有些东西我不明白;以下有什么区别?是什么让他们与众不同?它们似乎产生相同的结果:publicstaticstringGetMD5Hash(stringstr){MD5CryptoServiceProvidermd5=newMD5CryptoServiceProvider();byte[]bytes=ASCIIEncoding.Default.GetBytes(str);byte[]encoded=md5.ComputeHash(bytes);StringBuildersb=newStringBuilder();for(inti=0

c# - 使用 MD5 或 sha-256 C# 散列密码

我正在为一个应用程序编写注册表单,但对于c#新手来说仍然有问题。我希望将密码加密/散列为md5或sha-256,最好是sha-256。有什么好的例子吗?我希望它能够从“字符串密码”中获取信息;然后将其散列并存储在变量“stringhPassword;”中。有什么想法吗? 最佳答案 不要使用简单的散列,甚至是加盐的散列。使用某种key强化技术,如bcrypt(带有.NETimplementationhere)或PBKDF2(带有built-inimplementation)。这是一个使用PBKDF2的示例。从您的密码生成key...s

c# - .Net 中 Decimal.One、Decimal.Zero、Decimal.MinusOne 的用途是什么

简单的问题-为什么Decimal类型定义这些常量?何必呢?我正在寻找一个原因,为什么这是由语言定义的,而不是可能的用途或对编译器的影响。为什么首先把它放在那里?编译器可以像Decimal.Zero一样轻松地内联0m,因此我不会将其作为编译器快捷方式购买。 最佳答案 小澄清。它们实际上是静态只读值而不是常量。这在.Net中有明显的区别,因为常量值被各种编译器内联,因此不可能在编译的程序集中跟踪它们的使用情况。然而,静态只读值不会被复制,而是被引用。这对您的问题是有利的,因为这意味着可以分析它们的使用。如果您使用反射器并深入研究BCL,