問題タブ [saltedhash]
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.
authentication - 非対話型ログイン用のパスワードの保存
パスワードをデータベースに保存する方法としてソルトハッシュを使用することをお勧めします。ただし、これはインタラクティブな目的でのみ機能します。例えば、
- ユーザーは登録フォームを使用してパスワードを入力し、ソルト付きハッシュ エントリとしてデータベースに保存します。
- 次にパスワードを使用してログインすると、パスワードのハッシュ値がデータベース エントリと比較されます。
ここまでは順調ですね。このログイン自体を自動化したい場合はどうすればよいですか? つまり、ユーザーがオンライン フォームにパスワードを入力してログイン パスワードを送信する代わりに、ローカル マシンのどこかにパスワードを保存して、ログイン フォームで自動認証に使用できるようにしたいと考えています。問題は、一方向であるため、ここではソルトハッシュを使用できないため、暗号化を行う必要があることです。暗号化を選択した場合は、復号化に安全なキーを使用する必要があり、これもどこかに保存する必要があります。暗号化する必要がある場合、安全に行うにはどうすればよいですか? そうでない場合、最善の方法は何ですか。この種のベストプラクティスはありますか?
クラックされて失敗した実装をいくつか見てきました。たとえば、SQL 開発者https://stackoverflow.com/a/3109774/350136
validation - Magento でハッシュ パスワード機能が変更されましたか? もしそうなら、何に?
Magento バージョン 1.9.0.1 を使用しています。
Magento に切り替えるには、magento フレームワーク外の顧客向けのログイン機能を作成する必要があります。
パスワードをハッシュして検証するために magento が使用する方法を調べましたが、その方法はもう機能していないようです。
以下のコードは、magento 以外のユーザー ログインを検証するために使用します。このコードは概念実証を試みるためのものであり、明らかな理由からライブ環境では使用されていません:)。
$entity
電子メールの検証後に渡される entity_id です。
$passwordInput
ログインフォームに入力したパスワードです。
失敗を返します。$hashInput
戻って比較すると同じではないので、私は驚か$hashed_password
ない.
Magento がパスワードをハッシュする方法は変更されましたか? または、私のコードに間違いがありますか?
cryptography - 塩の長さが固定されているのはなぜですか?
変数のランダムな文字列をソルトとして使用する理由は、攻撃者がハッシュでレインボー テーブルを使用する前にすべてのソルトを検索するように強制するためだと思いました。これには長い時間がかかります。
しかし、ほとんどの開発者はソルトに固定サイズを使用しているようです。ほとんどのパスワードがソルトと一緒に保存されているため、1 つのソルトのサイズを調べると、すべてのパスワード ダイジェストからソルトの長さを切り取って、レインボー テーブルを使用することはできませんか?
これがどのように大変な労力になるのかわかりません。なぜ変数ソルトを使用する必要があるのか疑問に思います。攻撃者が必要とする唯一の情報は1 つのソルトのサイズであり、それ以上のソルトを調べる必要がないためです。ランダム化されたサイズははるかに安全ではないでしょうか?
可変性とランダム化は、私には「あいまいさによるセキュリティ」のように思えます。なぜなら、方法を知っていれば回避するのはとても簡単であり、それを実装する唯一の理由は、混乱の瞬間を引き起こすことだからです。それとも私が間違っていますか?
cakephp - Cakephp3x でパスワードハッシュにソルトを使用している間はログインできません
users テーブルに password と salt の 2 つのフィールドがあります。データを保存している間、次のコードを使用して、正常に機能し、データが両方の列に保存されています。
$password
次の配列値を持っています。
以下にログインコードを添付します。ここでは、パスワードとソルトを手動で確認しました。しかし、うまくいきません。
php - SHA256 とソルトを使用して暗号化する方法は?
前: 私の英語でごめんなさい。
わかりました今、私は次の暗号化方法を使用しています:
SHA256_PassHash(inputtext, "78sdjs86d2h", MyHash, sizeof(MyHash));
SHA256 with SALT: "78sdjs86d2h
現在、次のようにパスワードを確認しています。
このソルトメソッドで機能させるにはどうすればよいですか? 私はPHPについてあまり詳しくありません...入力テキストを暗号化する方法について教えてもらえますか?
node.js - ソルトとハッシング Mongod
サインアップしてログインするだけで、目的のページにアクセスできる簡単な練習用 Web サイトを作りたかったのです。
ユーザーが登録すると、ユーザー名とパスワードは、passportLocalMongoose を使用してソルト化およびハッシュ化されます。その後、データベース内に追加されます。
これは、ソルト化およびハッシュ化されたユーザー名とパスワードが、passportLocalMongoose を使用して追加されたときにどのように見えるかです。
{ "_id" : ObjectId("56ecb64ff2860fee176fb102"), "salt" : "f59b3e4bdd0c9081fdf84a227133d9cca2c40fdd1f304b23a786efd15e835a03", "hash" : "6ae24365b2001821253aaf62d9ad34cd5c80cc1bb369ad22701fd4f06e085c1bc32b6ffe3850bb38b23ee4947cc1dc078cd151e32de7f8a18d0bdf3732533a3c2a8ed91ec78a52fa74b266a933bc047fe2c6ab2708bfe6232ea1379069c73c154a3eaf4168aaa94d6a90f073cffbd651dd0ed5211850254832062da8b276d90efcfa59042189bab1833eef52d72ef827cd613429706d586292129221ddaed53747c51a4c92f820be98672975a400a75f49a9aa68ce6be7aa0a0b1c9de59a0004589959939ddaa06ae48b1d388ed985cb1f0b821d14039ace1448a48171d12cad04a812ec8c1716aef244afcfde0576161e1ab4ee43d58409d432068a9d716c840bff7b9cdf5a4fd04cebfb4cf1fdf23724bc4e436511e9b4510179fcaf22edb58f84ca1264773fb1df5c0e4a20298fbd9b240d5fb52008dfe443f88433f12c58b61489b7342093c873ee8bc233c570579621ec91970f01b79026d82da5f3710a3ba7be784f01a0fc49862043371e343921d544a4c50cf977ec34e5a951f5ab25523f968efe3d475927ff9cff6b6559afc2f11464b4e1b85d191ded29070488a4ad4af3d59217ce74b72afada062b7f7e81ca2da52d9e2f63bd67aff95b4578a062350f1e105a5a14899ebb59613e66d1a69b4b0b3389cb64f2400104d1b86f3838bc16091a86014d3ef3dd74dc4b910189fe7f6e63bfbf36a62d1ac8446f9f21", "username" : "John", "__v" : 0 }
私が望むのは、passportLocalMongoose を経由せずに同じことを行うことです。mongod を使用して、コマンド ラインからユーザー名とパスワードをソルトおよびハッシュしたいと考えています。
用語(「塩漬け」、「ハッシュ」)の間違った使用については申し訳ありませんが、他にどのよう
> use accounts
db.user.[something that salts and hashes]
に書き留めればよいかわかりませんでした。
たとえば、それを追加したいと思います。
> use Accounts
>db.student.insert('username':'Mark', 'password':'1234')
次に、コマンドラインで作成されたユーザー名とパスワードからログインしようとすると、「GET / favicon.ico 500 post」エラーが発生します...
ハッシュ(登録)するコードは次のとおりです。
});
ユーザーがログインを試みるコードは次のとおりです。
これが私の接続です:
皆さん、ありがとうございました。
database - ハッシュとデータベース検索の効率
メールアドレスを検証するための検証トークンを生成するためにハッシュを使用するつもりです。ハッシュは次のように生成されます。
ハッシュは SHA256 アルゴリズムで生成され、生成された各トークンに同じソルトが使用されます。
別の、より一般的に使用される方法は、データベースに保存され、新しい電子メール アドレスの検証として機能する 1 回限りの UID を生成することです。
私の質問は次のとおりです。これは、電子メール検証用のトークンの生成を達成するための効率的な(プロセッサとディスクの使用率などを考慮した)方法ですか。