4

bcryptnodejsモジュールを使用しています。

パスワードの暗号化と比較には満足していますが、復号化することは不可能のようです。

不思議なんだけど:

  1. nodejsでパスワードをどのように暗号化/復号化しますか(どのモジュールまたはメソッドを使用していますか)?
  2. bcryptモジュールでエンコードされたパスワードを復号化するトリックはありますか?

ありがとう !

4

2 に答える 2

15

bcryptを使用してパスワードを復号化することはありません。これは一方向のアルゴリズムです。元の(塩漬けの)パスワードのハッシュを保存します。次に、(塩漬けの)推測をハッシュします。ハッシュが一致する場合、推測は正しいです。

幸い、node-bcryptライブラリはこれらすべてを自動的に実行するため、プレーンテキストの推測と(データベースからの)ハッシュを提供するだけで済みます。

たとえば、次のようにします。

// "password"; usually stored in the database in the user's row.
var stored_hash = '$2a$10$vxliJ./aXotlnxS9HaJoXeeASt48.ddU7sHNOpXC/cLhgzJGdASCe'
bcrypt.compare(guess, stored_hash, function(err, res) {

});
于 2013-02-14T09:54:50.290 に答える
1

これを行うためのはるかに優れた方法は、このノードモジュールhttps://github.com/davidwood/node-password-hashを使用することです。これにより、パスワードを暗号化し、暗号化されたバージョンを実際のバージョンで検証することもできます。

于 2013-02-14T12:34:47.123 に答える