どのようにSQLデータベースにパスワードを格納すると、ユーザーの入力パスワードを変換する必要がありますか?テキストボックスからパスワードを保存しようとしましたが、データベースに空白/ヌルを保存した形式でパスワードモードにしました。パスワードモードを無効にすると、テキストが正常に動作します。SQL Serverにパスワードを格納および取得する方法は?
答えて
暗号化された形式でパスワードを保存することは良い方法です。あなたはそれを暗号化するためにmd5ハッシュアルゴリズムを使用することができます。ここでは何の疑いがある場合は、文字列
using System;
using System.Text;
using System.Security.Cryptography;
// Create an md5 sum string of this string
static public string GetMd5Sum(string str)
{
// First we need to convert the string into bytes, which
// means using a text encoder.
Encoder enc = System.Text.Encoding.Unicode.GetEncoder();
// Create a buffer large enough to hold the string
byte[] unicodeText = new byte[str.Length * 2];
enc.GetBytes(str.ToCharArray(), 0, str.Length, unicodeText, 0, true);
// Now that we have a byte array we can ask the CSP to hash it
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(unicodeText);
// Build the final string by converting each byte
// into hex and appending it to a StringBuilder
StringBuilder sb = new StringBuilder();
for (int i=0;i<result.Length;i++)
{
sb.Append(result[i].ToString("X2"));
}
// And return it
return sb.ToString();
}
あなたは、通常の文字列に暗号化されたテキストをバック元に戻すことはできません。..
連絡先をハッシュするためのサンプルコードです。
一般的に、いや、それは(少なくとも私の経験に応じて)それを変換する必要はないが、より多くのセキュリティ上の理由から、一部のユーザーは、暗号化/復号化メソッドを使用するか、base64でに変換し、最善の方法がありますハッシュ
のような一方向のアルゴリズムアリ
私はあなたがデータバインドされたコントロールのいくつかのタイプを使用していると仮定しています。
私はonInsertingイベントを作成し、いくつかの変数にtbPassword.text値を割り当て、パスワードは最初の変数に代入されている場合、デバッグを参照します。これは、データベースに直接ハッキングして誰かを偽装できないようにするために、パスワードをハッシュ化して暗号化する場所でもあります。
あなたが背後にあるコードでパスワード値を保存している場合は、あなたが上からonInserting工程を追加スキップすることができ、ちょうどそこに値を調べます。
あなたはまた、ストアドプロシージャを使用して保存されている場合は、パラメータをプリントアウトし、あなたがウェブサイトから渡された値と、それを実行して現れるかを確認したい場合があります。
私はあなたのパスワードをひそかし、データベースに保存し、一般的に、我々は、データベース内の
プレーンテキストを保存していない、と私たちは、パスワードを暗号化する必要があるべきであると考えています。データベース設計のために
、
ユーザーがinputedとき私たちは、二つのフィールド暗号文とDataTableのキーを追加する必要がありますパスワード
プログラムは、パスワードを暗号化する必要があり、その後、を保存暗号文とをdatatableに暗号化します。
ユーザーが再度ログオンするので、Cipherテキストを等しいかどうか比較するだけでOKです。
以下のコードを参照できます。
/// <summary>
/// Encrypts the specified hash algorithm.
/// 1. Generates a cryptographic Hash Key for the provided text data.
/// </summary>
/// <param name="hashAlgorithm">The hash algorithm.</param>
/// <param name="dataToHash">The data to hash.</param>
/// <returns></returns>
public static string Encrypt(HashAlgorithm hashAlgorithm, string dataToHash)
{
var tabStringHex = new string[16];
var UTF8 = new System.Text.UTF8Encoding();
byte[] data = UTF8.GetBytes(dataToHash);
byte[] result = hashAlgorithm.ComputeHash(data);
var hexResult = new StringBuilder(result.Length);
for (int i = 0; i < result.Length; i++)
{
//// Convert to hexadecimal
hexResult.Append(result[i].ToString("X2"));
}
return hexResult.ToString();
}
/// <summary>
/// Determines whether [is hash match] [the specified hash algorithm].
/// </summary>
/// <param name="hashAlgorithm">The hash algorithm.</param>
/// <param name="hashedText">The hashed text.</param>
/// <param name="unhashedText">The unhashed text.</param>
/// <returns>
/// <c>true</c> if [is hash match] [the specified hash algorithm];
/// otherwise, <c>false</c>.
/// </returns>
public static bool IsHashMatch(HashAlgorithm hashAlgorithm,
string hashedText, string unhashedText)
{
string hashedTextToCompare = Encrypt(
hashAlgorithm, unhashedText);
return (String.Compare(hashedText,
hashedTextToCompare, false) == 0);
}
- 1. 隔離ストレージファイルにデータを格納および取得する方法は?
- 2. SQL ServerでJSONデータを格納、フィルタリング、取得する方法
- 3. コールバック()の状態を格納および取得する方法は?
- 4. 格納および取得の特殊文字は、MySQL
- 5. SQL Serverがストアドプロシージャ内にSQL文を格納する方法
- 6. mongo ObjectIDをSQL Serverに格納する方法は?
- 7. ブラックベリーアプリケーションのローカルSQL Serverデータベースにテキストボックスデータを格納する方法は?
- 8. SQL Serverに10進値を格納する方法は?
- 9. JSONデータをSQL Serverデータベースに格納する方法は?
- 10. C#を使用してWindowsで資格情報を格納および取得する方法
- 11. C#プロパティをSQL Serverデータベースに格納してコマンドを呼び出す方法は?
- 12. java.util.Calendarを使用してオブジェクトに格納された日付を格納および取得する
- 13. pyorientを使用してorientdbにバイナリデータを格納および取得する方法は?
- 14. AutoCAD。ObjectIdを使用せずにオブジェクトIDを格納および取得する
- 15. アンドロイドを介してファイルを格納および取得するリモートサーバーにアクセスする方法
- 16. MongoDBからSwift DataまたはNSDataを格納および取得する方法は?
- 17. SQLデータベースの内部に方程式および/または乱数ジェネレータを格納する方法は?
- 18. SQL Serverに人名を格納する最適な方法
- 19. winformsからSQL Serverにファイルを格納する方法C++
- 20. 長い文字列をSQL Serverに格納する方法
- 21. SQL Server変数に複数の値を格納する方法
- 22. Java/sqlを使用してデータを格納および取得するのに問題がある
- 23. MaxMind GeoIP2データベースをAzureに格納(およびクエリ)する方法は?
- 24. HashMapを使用してJavaでオブジェクトを格納および取得する
- 25. ASP.NETで設定できない定数を格納および取得する方法は?
- 26. SQLを使用してSQL Server 2005にzipを格納する方法は?
- 27. SQLIteからテーブルを読み取ってMicrosoft SQL Serverに格納する方法
- 28. 単一セッション変数内に複数の値を格納および取得する方法
- 29. NSUserDefaultsから長い配列を格納および取得する
- 30. Informaticaリポジトリ:SQLクエリを取得する方法SQL変換に格納
意味のある回答を得るために十分な情報がありません。いくつかのコード、SQL、テーブル定義などを投稿できますか?今後何らかの理由でパスワードが必要な場合は、 – RickNZ
を他の2ウェイアルゴリズムで暗号化してください。パスワードではなく、表示する必要のある秘密の文字列だった場合の例.... – tgkprog
@tgkprogありがとう! – Rembo