同様の回答を見てきましたが、以前に回答した質問から回答が見つからなかったため、これが探しているものです。
これが私のシナリオです。ユーザー名、暗号化されたパスワード、および 4 桁のピンまたはキーを保存するテーブル[res_user]があります。username, password, key_pin
マネージャーがログインしてアプリ自体からデータベースを変更できるようにするアプリを C# で作成しています。
管理者は最初に、提供されたユーザー名、パスワード、および key_pin を使用してログインするように求められます。PIN は、データベースとの間でパスワードを暗号化および復号化するものです。
これで、ユーザー名[manager]と暗号化されたパスワードが既にデータベースに保存されていますkey_pin.
ログインしているマネージャーが正しいことを確認するにはどうすればよいですか。つまり、C# アプリからデータベース内のユーザー名と暗号化されたパスワードを比較するにはどうすればよいでしょうか。
これらは、アプリ自体に実装する予定の手順です (C# で SQL 構文を使用)。
- パスワードを暗号化し、 
- ログインユーザー名を使用してデータベースに保存された暗号化を取得し、 
- アクセス制御のために、はいまたはいいえをアプリに返す暗号化を比較します。 
ログインを 5 回まで試行できます。
これは私が行った最初と2番目の部分です:
try
{
   using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["STRING"].ConnectionString))
   {
     using (SqlCommand cmd = new SqlCommand("dbo.Res_User", con))
     {
       cmd.CommandText = "INSERT INTO Res_User(username, password, key_pin) SELECT '" + username + "' , dbo.fnEncDecRc4('" + pin + "','" + password + "'), '" + pin + "'";
       con.Open();
       cmd.ExecuteNonQuery();
       MessageBox.Show("Added", "Information", MessageBoxButtons.OK);
       cmd.CommandText = "SELECT password FROM Res_User WHERE username = @username";
       cmd.Parameters.AddWithValue("@username", username);
       cmd.ExecuteNonQuery();
       using (SqlDataReader reader = cmd.ExecuteReader())
       {
           if (reader.HasRows)
           {
               while (reader.Read())
               {
                    MessageBox.Show(reader["password"].ToString(), "Information", MessageBoxButtons.OK);
               }
           }
       }
第三部はどうしようかな。
誰かが保存されたencを比較するのを手伝ってくれる場合にのみ。パスワードとログイン enc. パート1で作成したパスワード。
さらに情報が必要な場合はお知らせください。
ありがとうございました。
どんな助けでも大歓迎です。