2

私はここでかなり単純な仕事をしようとしています。私が実行しているサーバーには、MySQL インスタンスが実行されており、これを使用して Rails アプリにデータを入力しています。残念ながら、私はdeviseを使用してすべてのユーザー管理を行っていましたが、今は少し行き詰まっています。

だから私は書いているC#アプリケーションを持っています。既に配置されている MySQL データベースを使用して、ユーザーとパスワードを簡単に確認したいと考えています。

現在、私が知っている(または知っていると思う)のは次のとおりです。

Devise は Bycrypt を使用して、データベースに保存されるパスワードに対して一方向の暗号化を行います。問題は、検証する適切な暗号化パスワードを生成するために bycrypt を適切に実装する方法がわからないことです。

ハッシュ化されたパスワードを生成するための現在のプロセスは次のとおりです。

string pass = password.Text;
string mySalt = BCrypt.Net.BCrypt.GenerateSalt();
string myHash = BCrypt.Net.BCrypt.HashPassword(pass, mySalt);

これは本当に間違っているに違いないと思います。ここで何が欠けているのか、何が間違っているのかよくわかりません。グーグルで検索を続け、答えが見つかったら投稿します。また、編集ルールなどを破った場合はお知らせください。すぐに修正できます。

お時間をいただきありがとうございます:)

4

2 に答える 2

2

Alright so my question was actually pretty silly but for anyone else with the same logical fallacy as me I'll explain.

By default Devise does it's encryption using BCrypt, which is typically done with Blowfish, when they do this they always use BCrypts generate salt function which produces a random salt for each hashing of the password.

Because of the random salt BCrypt includes a utility function called Verify(password, hashed_pass). This function allows the testing of a non encrypted password and hashed pass to be compared. Nifty and very useful

于 2013-02-10T22:42:05.490 に答える
2

あなたの問題は、パスワードをハッシュしてデータベースと照合するたびにソルトを生成することだと思います。パスワードが最初に生成されたときに使用されたものと同じソルト値を使用する必要があります。

于 2013-02-10T20:40:15.970 に答える