私はユーザーが情報を入力してプログラムにログインできるときにアプリケーションを使って作業しています。パスワードはテーブルに暗号化されて保存されます。私は、このパスワードを使ってログインしようとすると、しかし、それは動作しません。\C#wpf Sqlテーブル、暗号化されたパスワード
を、データを暗号化するために、私は
ALTER procedure [dbo].[inn]
@use varchar (50) = null,
@ins varchar (50) = null
AS
INSERT INTO [kole].[dbo].[koll]
([Userr]
,[ins])
VALUES
(@use,
((EncryptByPassPhrase('8', @ins)))
は、そしてdecrypteのために、私は、このストアドプロシージャ
ALTER procedure [dbo].[sle]
@Use varchar (50) = null,
@ins varchar (50) = null
AS
SELECT Userr,CONVERT(varchar(50),DECRYPTBYPASSPHRASE ('8',ins)) as Password
FROM [kole].[dbo].[koll]
where Userr = @Use and ins = @ins
GO
を使用してこのストアドプロシージャを使用します私はこのコードを使ってデータを呼び出し、プログラムにログインします。
private void btn_Click(object sender, RoutedEventArgs e)
{
SqlConnection conn = new SqlConnection("Server = localhost;Database = kole; Integrated Security = true");
SqlCommand cmd = new SqlCommand("sle", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Userr", txt.Text);
cmd.Parameters.AddWithValue("@ins", psw.Password);
conn.Open();
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapt.Fill(ds);
conn.Close();
int count = ds.Tables[0].Rows.Count;
if (count == 0)
{
MessageBox.Show("This user don't exist");
SystemSounds.Hand.Play();
txt.Text = "";
psw.Password = "";
}
else if (count == 1)
{
MessageBox.Show("Granted!");
SystemSounds.Asterisk.Play();
conn.Open();
}
正しい方法でパスワードを復号化して、プログラムにログインする方法を教えてください。ありがとう
が必要で:あなたが暗号化するのではなく、ハッシュ化を検討ddは? – Caramiriel
どうすればいいのですか?私がサンプルの理由で私に新しいことを教えてもらえますか? – user5827232
私は、これらのウェブサイトがあなたになぜ、どのようにしているかを伝えていると思います(https://crackstation.net/hashing-security.htm/http: /www.codeproject.com/Articles/608860/Understanding-and-Implementing-Password-Hashing)。要するに、ウェブサイトが何らかの理由で情報を漏洩した場合に備えて、パスワードを取得できない方が良い。 – Caramiriel