我想做一个登录系统。Mybb论坛系统上的所有帐户。我想登录到客户端使用mybb_users数据库。但是密码md5。还有一个冒号的名字:"salt"。我怎样在核对密码时加密密码?这是我的代码(如果电子邮件和密码为真)
int count = 0;
while (myReader.Read())
{
count = count + 1;
}
if (count == 1) // IF Ok.
{
userLabel.Text = myReader[0].ToString();
loginSuccessTimer1.Enabled = true;
LoginFormSuccessBG loginSuccess = new LoginFormSuccessBG();
loginSuccess.Show();
}
由于您的密码存储在mybb -数据库中,因此它们将遵循以下形式:
md5(password + md5(salt))
换句话说,首先获得盐的md5哈希值,然后将其添加到密码中,然后创建它的md5哈希值。生成的字符串将存储在MyBB-database中。
我相信你想这样做:
string salt = // get salt from db
string password = // get password from user
MD5 md5 = new MD5CryptoServiceProvider();
// Create md5 hash of salt
byte[] saltBytes = Encoding.Default.GetBytes(salt);
byte[] saltHashBytes = md5.ComputeHash(salt);
string saltHash = System.BitConverter.ToString(saltHashBytes);
// Create your md5(password + md5(salt)) hash
byte[] passwordBytes = Encoding.Default.GetBytes(password + saltHash);
byte[] passwordHashBytes = md5.ComputeHash(salt);
string passwordHash = System.BitConverter.ToString(passwordHashBytes);