開発者の皆さん、?スケーラブルなアプリケーションを構築する場合、アプリケーションの全体的な品質を向上させるために、安全な認証システムを導入することは必須のタスクです。認証システムの重要な部分の 1 つは、データベースに保存する際のパスワード暗号化アルゴリズムです。パスワードを暗号化する方法の 1 つはハッシュ化です。
このブログでは、パスワード ハッシュのエキサイティングな世界に飛び込んでみましょう。そこでは、Crypto with Promisify と bcryptjs という 2 つの強力な競争相手を互いに戦わせます。ネタバレ注意: そのうちの 1 つは私たちの生活をずっと楽にしてくれます!
これが私たちの最初の挑戦者であり、Node.js の暗号モジュールを使用した複雑だが安全な方法です。この方法には、かなりの労力と util.promisify の魔法が必要です。
const crypto = require('crypto'); const util = require('util') function hashPassword(password) { return util.promisify(crypto.randomBytes)(config.saltBytes).then(salt => { return util.promisify(crypto.pbkdf2)(password, salt, config.iterations, config.hashBytes, config.digest).then(hash => { return { salt, hash, iterations: config.iterations } }); }) }
2 番目の候補である、群衆のお気に入りの bcryptjs を紹介します。このライブラリは、頭を痛めることなく物事をシンプルかつ安全に保つことを目的としています。
const bcrypt = require('bcryptjs'); async function hashing(plainTextPassword) { if (!plainTextPassword) { return null; } const saltRounds = await bcrypt.genSalt(10); const hashedPassword = await bcrypt.hash(plainTextPassword, saltRounds); return hashedPassword; }
Promisify による暗号化:
手動によるソルト生成とハッシュの手順。 ??
コードが増えて複雑になります。
ソルト、ハッシュ、反復を含むオブジェクトを返します。
bcryptjs:
ソルトの生成とハッシュを抽象化します。
読みやすく、理解しやすくなりました。
ハッシュ化されたパスワードを直接返します。
勝者:bcryptjs のシンプルさと読みやすさ。 ?
Promisify による暗号化:
安全なキー導出関数である PBKDF2 を使用します。
セキュリティを確保するには慎重な構成が必要です。
bcryptjs:
パスワードハッシュ用に設計された bcrypt を使用します。
ソルト生成を自動的に処理します。
セキュリティを強化するための構成可能なソルト ラウンド。
勝者: 同点!どちらも安全ですが、bcryptjs の方が安全に使用するのが簡単です。 ?
Promisify による暗号化:
パフォーマンスは反復回数とハッシュの長さに依存します。
ニーズに基づいて微調整可能。
bcryptjs:
パフォーマンスはソルトラウンドに依存します。
ブルートフォース攻撃を阻止できるほど遅くなるように設計されています。
勝者: 同点!どちらもパフォーマンスを調整できますが、bcryptjs の方が構成が簡単です。 ⚔️
Promisify による暗号化:
bcryptjs:
パスワードハッシュ用の高レベル API。
コードが減り、統合が容易になります。
勝者:bcryptjs の使いやすさ。 ?
ドラムロールをお願いします…?ハッシュ対決のチャンピオンは bcryptjs です!どちらの方法も安全ですが、そのシンプルさ、読みやすさ、使いやすさの点では bcryptjs の方が圧倒的に優れています。暗号化の専門家でなくても、パスワードのハッシュ化が簡単になります。したがって、次回パスワードをハッシュする必要があるときは、どれを選択すればよいかわかります!
お気軽に質問したり、パスワード セキュリティの魅力的な世界を深く掘り下げてください。
ありがとうございます!ぜひ読んでください。もしあればコメントを残してください ✌️
将来のためにこのブログをブックマークすることを忘れないでください?
著者と連絡を取る:
GitHub
ツイッター
以上がCryptojs と Bcryptjs: どちらのパスワード ハッシュ化方法を信頼すべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。