私はグーグルで検索しました、残念ながら私は私が望むどんな期待される答えも見つけることができません。
BCryptの.NET実装をダウンロードしました
正直なところ、私は通常PHP言語でコーディングしていますが、.Netのようなものについてはわかりません。
私はグーグルで検索しました、残念ながら私は私が望むどんな期待される答えも見つけることができません。
BCryptの.NET実装をダウンロードしました
正直なところ、私は通常PHP言語でコーディングしていますが、.Netのようなものについてはわかりません。
ある種のユーザープロファイルテーブルにユーザーハッシュを格納するためのスキーマがすでにあると思いますか?
このテーブルが次のような形式であるとしましょう。
PersonID int PrimaryKey
PersonName nvarchar(50)
PersonPasswordHash varchar(128)
PersonPasswordSalt nvarchar(10)
次に、.netコード(C#の例)で、新しいユーザーを作成するときに次の手順を実行します。
string passwordPlain = txtPassword.Text; // This is the password entered by the user
/* a work factor of 10 is default, but you can mention any thing from 4 to 31.
But keep in mind that for every increment in work factor the work increases
twice (its 2**log_rounds)
*/
string passwordSalt = BCrypt.GenerateSalt(10);
string passwordHash = BCrypt.HashPassword(passwordPlain, passwordSalt);
// Now store the passwordHash and passwordSalt in the database for that user
上記の値を取得したら、適切な値をデータベースに保存します。
ログインを検証するときは、データベースからpasswordHash
とに関する詳細を取得しpasswordSalt
、次のように確認できます。
string originalPasswordSalt; // retrieve its value from the DB
string originalPasswordHash; // retrieve its value from the DB
string givenPasswordPlain = txtPassword.Text; // given by the user during login
string givenPasswordHash = BCrypt.HashPassword(givenPasswordPlain, originalPasswordSalt);
if(givenPasswordHash.Equals(originalPasswordHash)) { // you have an valid user
} else { // given login name or password is not valid
}