我正在看哈希算法,但找不到答案.
谢谢..
更新:
我想澄清一点,我理解散列和加密之间的区别.是什么促使我这样问这个问题的是这篇文章,作者将bcrypt称为"自适应散列"
由于bcrypt基于Blowfish,因此我认为Blowfish是一种哈希算法.如果它的答案已经指出加密,那么在我看来它应该不会在本文中占有一席之地.更糟糕的是,他总结说bcrypt是最好的.现在让我感到困惑的是phpass类(我相信用于密码哈希)使用bcrypt(即河豚,即加密).根据这些新信息,你们告诉我(河豚是加密),这个类听起来不对.我错过了什么吗?
我查询了msdn和其他资源如何做到这一点,但我想出了没有明确的解决方案.这是我找到的最好的http://blogs.msdn.com/b/shawnfa/archive/2004/04/14/generating-a-key-from-a-password.aspx?Redirected=true
我想使用bcrypt或PBKDF2(看起来与bcrypt相关)在C#中散列密码.我想试验一下我的计算机散列密码需要多少轮.然而,一切似乎都是关于加密,而每个人都谈论哈希.我无法弄清楚.我如何哈希密码?它看起来更像PBKDF2(Rfc2898?)是一个随机数生成器,我使用GetBytes(金额)来选择我的散列大小有多大.
我糊涂了.我究竟如何用bcrypt/PBKDF哈希密码?
要寻找拯救,需要使用字节数组密码在此使用的方法后
那么我应该在sql server中使用哪种数据类型来保存字节数组?以及如何使用SqlCommand传递和检索字节数组?
我通过使用我的密码生成salt和hash值,
string salt = CreateSalt(TxtPassword.Text.Length);
string hash = CreatePasswordHash(TxtPassword.Text, salt);
private static string CreateSalt(int size)
{
//Generate a cryptographic random number.
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[size];
rng.GetBytes(buff);
// Return a Base64 string representation of the random number.
return Convert.ToBase64String(buff);
}
private static string CreatePasswordHash(string pwd, string salt)
{
string saltAndPwd = String.Concat(pwd, salt);
string hashedPwd =
FormsAuthentication.HashPasswordForStoringInConfigFile(
saltAndPwd, "sha1");
return hashedPwd;
}
Run Code Online (Sandbox Code Playgroud)
您建议在sql server中存储这些值的数据类型是什么?任何建议......
盐:9GsPWpFD
哈希:E778AF0DC5F2953A00B35B35D80F6262CDBB8567
我想找到一个解决方案或方法,允许我添加盐并控制迭代次数.原生Rfc2898DeriveBytes基于HMACSHA1.理想情况下,使用SHA-256或SHA-512将使系统面向未来.
这是我到目前为止找到的最好的例子:http://jmedved.com/2012/04/pbkdf2-with-sha-256-and-others/ 但是当我使用SHA-256运行它时它实际上比SHA-512.我使用64k迭代,一个盐的guid和不同长度的密码进行比较.
我也找到了这个解决方案:http: //sourceforge.net/projects/pwdtknet/ ,它有完整的源代码.它看起来更强大.
到目前为止,我无法从它们中获得相同的输出.
我有自己的密码加密dll,用于登录时检查用户的密码,这在我的用户实体中引用.
现在我已经创建了一个用户注册哪个工作正常,除了密码尚未加密.
我的问题很简单,我应该在哪里加密新用户的密码?我不确定因为我知道用户的密码不应该以纯文本形式传输,因此我不知道调用加密函数的最佳位置在哪里:
非常感谢
encryption ×3
hash ×3
passwords ×3
c# ×2
.net ×1
asp.net ×1
bcrypt ×1
bytearray ×1
salt ×1
security ×1
sql-server ×1
sqlcommand ×1
types ×1