C#密码加密我在网上找到了一些代码,可以很好地完成我想做的事情。我需要一些可以加密密码、将它们保存到数据库并轻松检索它们的东西。下面的代码几乎完成了我需要的一切。我收到此错误:System.Security.Cryptography.CryptographicException:指定的密钥不是此算法的有效大小。在Cryptostream行上生成错误。我需要使用不同类型的密钥吗?通常的做法是不对数据库中的密码进行加密,而是对其进行哈希处理。当用户尝试登录时,您获取他们输入的密码,对其进行哈希处理并将其与存储在数据库中的哈希值进行比较。行业标准哈希算法是SHA-1,它在.NET中是可读的。为了额外的安全性,您在散列中使用“Salt”。您可以在此处阅读更多相关信息:加盐密码:最佳实践?如果您需要实际反转加密,只需使用ProtectedData类:http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx如果这里的其他人是正确的,请使用Asalted哈希,如下面的示例类所示。以下摘自“另一个如何存储盐渍密码哈希的例子”publicsealedclassPasswordHash{constintSaltSize=16,HashSize=20,HashIter=10000;只读字节[]_salt,_hash;publicPasswordHash(stringpassword){newRNGCryptoServiceProvider().GetBytes(_salt=newbyte[SaltSize]);_hash=newRfc2898DeriveBytes(密码,_salt,HashIter).GetBytes(HashSize);}publicPasswordHash(byte[]hashBytes){Array.Copy(hashBytes,0,_salt=newbyte[SaltSize],0,SaltSize);Array.Copy(hashBytes,SaltSize,_hash=newbyte[HashSize],0,HashSize);}publicPasswordHash(byte[]salt,byte[]hash){Array.Copy(salt,0,_salt=newbyte[SaltSize],0,SaltSize);Array.Copy(hash,0,_hash=newbyte[HashSize],0,HashSize);}publicbyte[]ToArray(){byte[]hashBytes=newbyte[SaltSize+HashSize];Array.Copy(_salt,0,hashBytes,0,SaltSize);Array.Copy(_hash,0,hashBytes,SaltSize,HashSize);返回哈希字节;}publicbyte[]Salt{get{return(byte[])_salt.Clone();}}公众号te[]Hash{get{return(byte[])_hash.Clone();}}publicboolVerify(stringpassword){byte[]test=newRfc2898DeriveBytes(password,_salt,HashIter).GetBytes(HashSize);for(inti=0;iHashingpasswordsismuchbetterthanencryption它进行散列并比较两个散列(即数据库中的一个和你从用户输入散列的那个)以进行身份??验证。这里的明显好处是你确保没有人-无论他访问数据库的原因-两者都会知道原始密码(理论上)。我建议你使用bcrypt。源代码可在http://code.google.com/p/bcryptnet/下载并使用它。但在使用之前。阅读文档,了解它的工作原理以及为什么使用bcrypt很重要。通过我数周的密码加密研究。我终于找到了最适合我需求的bcrypt。(我认为它最适合密码,如果我错了,请纠正我)这是一种加密方式。正如少数程序员所说,散列和比较而不是解密。希望这对你有帮助。如果大家发现有趣的东西,请告诉我XDpeace~~我说错了,指正我XD试试这个:以上就是C#学习教程的全部内容:C#密码加密分享,如果对大家有用需要了解一下更多C#学习教程,希望大家多多关注---varhash=Encoding.ASCII.GetBytes(password);varsha1=newSHA1CryptoServiceProvider();varsha1hash=sha1.ComputeHash(散列);varhashedPassword=Encoding.ASCII.GetString(sha1hash);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
