-4
私はユーザーアカウントテーブルを作成しました。ログインには2つのフィールドがあり、パスワードは暗号化された形式で保存されるユーザーIDとパスワードを格納します。パスワードはMD5ハッシュを使用して登録時に暗号化されます。ユーザーが自分のパスワードを変更したい場合、どのように変更するのですか?私は簡単な更新ステートメントを使用してパスワードを更新しようとしましたが、それは動作しませんでした。MD5を使用して暗号化されたパスワードをSQL Server 2005データベースに更新する方法
私のコードは次のとおりです。
//Code
public int Changep(string strLogin, string strPassword, string newpass)
{
//Create a connection
string cs = "data source=DELL-PC;initial catalog=project;user id=sa;password=pass";
SqlConnection objConn = new SqlConnection(cs);
// Create a command object for the query
string strSQL = "UPDATE tblLogins SET Password= @Password WHERE [email protected] AND Password = @Password2";
SqlCommand objCmd = new SqlCommand(strSQL, objConn);
//Create parameters
SqlParameter paramUsername;
paramUsername = new SqlParameter("@Username", SqlDbType.VarChar, 25);
paramUsername.Value = strLogin;
objCmd.Parameters.Add(paramUsername);
//Encrypt the password
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] hashedBytes;
UTF8Encoding encoder = new UTF8Encoding();
hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(strPassword));
SqlParameter paramPwd;
paramPwd = new SqlParameter("@Password", SqlDbType.Binary, 16);
paramPwd.Value = hashedBytes;
objCmd.Parameters.Add(paramPwd);
//Encrypt the old password
MD5CryptoServiceProvider md5Hasher2 = new MD5CryptoServiceProvider();
byte[] hashedBytes2;
UTF8Encoding encoder2 = new UTF8Encoding();
hashedBytes2 = md5Hasher2.ComputeHash(encoder2.GetBytes(strPassword));
SqlParameter paramPwd2;
paramPwd2 = new SqlParameter("@Password2", SqlDbType.Binary, 16);
paramPwd2.Value = hashedBytes;
objCmd.Parameters.Add(paramPwd2);
int iResults;
//Insert the record into the database
try
{
objConn.Open();
//We use execute scalar, since we only need one cell
iResults = Convert.ToInt32(objCmd.ExecuteScalar().ToString());
if(iResults==1)
return PassUpdated;
else
return Updatefailed;
}
catch
{
return Updatefailed;
}
finally
{
objConn.Close();
}
}
}
すぐにお返事ください。私は緊急にそれを必要とします – user1347081
何がうまくいかないのですか?あなたが得ているエラーは何ですか? – coder
何がうまくいかなかったのですか?どのようなエラーが発生していますか?あなたのテーブル定義は何ですか? – squillman