問題タブ [phpass]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 安全なパスワード保存のための最良のソリューションをphpassしますか?
私は大量の個人データを処理するサービスを作成しているので、パスワードを単純に飛ばすのは適切ではありません。私は可能な解決策を見つけるために掘り下げてきました、そして私の注意を引いたのはphpassです。私はここのStackOverflowでそれについて読みました。
このテーマについて多くの質問があることは承知していますが、phpassはパスワードを安全に保存する方法であることを明確にしておきたいと思います。私が疑う理由は、塩を一切使用していない(少なくとも使用していないように見える)ためです。これは、安全な保管の鍵であると言われています。
私の現在の方法は、1つのユーザー固有のソルトと別のサイト固有のハッシュを使用したsha512ハッシュです。これが私のPHPコードのクリップです:
この問題について専門家のような意見を聞くのは素晴らしいことです。いつも質問されてきた主題のために別のスレッドを作成したことをお詫びします。前もって感謝します。
編集:
パスワードをハッシュすることも、たとえば1000回はパスワードを保存するための良い方法だと聞きました。この方法では、ハッシュは(最大で)数秒しかかかりませんが、ハッシュされたパスワードを破るには文字通り何年もかかりますか?
php - 「ユニークな」ソルトに対する「ランダムな」ソルトの利点は何ですか?
私は現在プログラムを作成しており、その一部にはパスワードハッシュを安全に作成してデータベースに保存することが含まれており、phpassフレームワークに出くわしました。これは強く推奨されるようです。phpass では、ハッシュ (/dev/urandom からの読み取りなど) に使用するために可能な限り真にランダムなソルトを生成するために、かなりの時間を費やしているようです。
私の質問は、単に使用するのではなく、これを行う利点は何uniqid()
ですか? ハッシュに使用されるソルトがランダムではなく互いに異なることを確認することがポイントではありませんか? 本当にランダムなソルトを使用することは、ユニークなソルトを使用するよりも実際には悪いことではないでしょうか?
編集:私の質問は、コンピューター環境に「真の」ランダム性が存在するかどうかに関するものではなかったので、少し言い間違えたかもしれませんが、私の質問は、「より多くの」ランダムソルトがより多くの一意性よりも利点があるかどうかという線に沿ったものでした塩として。
php - PHPassに与えられたパスワードをサニタイズするのは安全ですか?その逆も同様ですか?
ハッシュ全般についての私の理解から、1つの変更された文字は、どこでもハッシュ全体を別の球場に投げ込むことができます...そしてそれは私に考えさせられました... PHPassに与えられたパスワードをサニタイズすることは良い考えですか?将来のPHPバージョンで、サニタイズ関数でエスケープされるものを変更することを決定し、誰かのパスワードに新しくエスケープされた文字の1つが含まれている場合、ハッシュが破棄され、元に戻せなくなります(リセットがない場合)。
潜在的なセキュリティリスクが、いくつかのパスワードリセットの不便さを上回っていることを認識していますが、この点についてはまだ興味があります。これは正当な懸念ですか?
php - PHPassで既存のMD5ハッシュを使用する際のセキュリティ上の落とし穴はありますか?
よく知る前に、ハッシュアルゴリズムとしてmd5を使用してログインシステムを実装しました。よくわかったので、PHPassの使用に移りたいと思います。私の問題は、システムがすでに本番環境にあり、すべてのユーザーにパスワードの変更を求めることがすべての頭痛の種になるということです。
私は十分に単純な解決策を考え出しましたが、以前の間違いを考慮して、無知のために同じように深刻な間違いを犯していないことを確認したいと思います。
私の解決策は次のとおりです。
変化する
md5($_POST['pass'])
- md5ハッシュパスワードをデータベース値と照合します
に
md5($_POST['pass'])
- md5ハッシュパスワードをに渡す
$hasher->HashPassword()
$hasher->CheckPassword()
再ハッシュされたパスワードをDBからの値と照合するために使用します
わかりやすくするために、md5バージョンを再ハッシュしているだけです。これは、すでにDBにあるバージョンだからです。これは、追加のセキュリティ対策として意図されたものではありません(ただし、そうであれば、それは素晴らしいことです!)。
php - 本番環境および開発環境でのプラットフォーム依存の PHP ハッシュ
ユーザーパスワードを DB に保存する際のパスワード暗号化アルゴリズムとして md5() を削除し、phpassライブラリを使用することにしました。
md5 を使用するシステムでは、生成されるハッシュが同じであるため、Production/Development ダイアドを使用しても問題ありませんでした。そのため、どちらかでテスト ユーザーを作成した場合、同じパスワードがもう一方の環境で機能しました。
私が収集したものから、これは他のタイプのハッシュアルゴリズムと同じではありません.phpass(またはその内部php関数)はプラットフォーム依存のハッシュを作成します(私はハッシュ/暗号化の初心者です).
私の質問は、この状況にどのようにアプローチすべきかということです。prod/dev の別のデータベース? しかし、「2 階」が Web アプリケーションを (その DB と共に) 別のサーバーに移動する必要があると判断した場合はどうなるでしょうか? phpass は同じ (古い) パスワードに対して異なるハッシュを作成するため、ハッシュ化されたパスワードは無効になりませんか?
後で編集:
まあ、開発ハッシュを本番ハッシュにチェックすることは気にしませんでした。それらは異なっていても、「同等である」のように、比較すると「真」になります。ハッシュが異なる場合、一致しないと思いました(md5のように)。
php - phpass が同じ入力文字列に対して異なるハッシュを返すのはなぜですか?
私は、ハッシュアルゴリズムが常に同じハッシュを返すことに慣れています。
phpass ライブラリが常に異なるハッシュを返すのはなぜですか?
IVと何か関係あるの?(私はその概念を完全には理解していませんでした)
actionscript-3 - 移植可能な PHP パスワード ハッシュ フレームワークおよび同等の ActionScript 3
良い?出来ますか?データベースに保存されているパスワードはThe Portable PHP Password Hashing Framework
(http://www.openwall.com/phpass/) でハッシュ化されています。
AS3 と同じ方法でそれらをハッシュするにはどうすればよいですか?
それが不可能な場合、as3crypto
ライブラリで最も強力なハッシュ アルゴリズムは何ですか? ですかhmac-sha256
?
ありがとうございました。
php - PHPassエラー:関数名は文字列である必要があります
PHPassでこのエラーが発生します:
警告:is_readable():open_basedir制限が有効です。ファイル(/dev/urandom)が許可されたパス内にありません:(/customers/example.com/example.com/httpd.www:/customers/example.com/example.com/httpd.private:/customers /customers/example.com/example.com/httpdの/example.com/example.com/tmp:/customers/example.com/example.com:/var/www/diagnostics:/usr/share/php) www / example / scripts / PasswordHash.php(51行目)致命的なエラー:関数名は/customers/example.com/example.com/httpd.www/example/register.php(82行目)の文字列である必要があります
PasswordHash.php(PHPass)の51〜54行目:
register.phpの81〜84行目(最初の2行はrequireと$ hasherも含まれます):
では、このエラーはどういう意味ですか?
php - PHPass の正しい実装
md5 や sha1 よりも安全であるため、アプリケーションにユーザーのパスワードを保存するために PHPass を使用しています。パスワードでソルトを使用する方法について質問があります。
私が集めたものから、ユーザーを挿入するときに次のように使用します。
ログイン時にユーザーの詳細を確認するときは、次のようにします。
しかし、塩を使っているものは見当たりません。私が読んだことから、私のユーザーテーブルには、パスワードをハッシュするときに使用されるソルト用の追加フィールドが必要ですが、CheckPassword
PHPass のメソッドはソルトを取りませんか?
ありがとう。