まえがき:簡単なeコマースWebサイトの作成ユーザーは登録時に登録ページから自動的に追加されます。パスワードを自動的に暗号化したいのですが。
問題:MySQLのWebサイトにAES_ECRYPTの使い方が記載されていますが、管理者が手動でこれを行うターミナルタイプの設定のようです。
自動的に暗号化されるようにregister.phpにコードを追加したいです。
ありがとう!
回答:
回答№1の場合は-1あなたはパスワードをハッシュしたいのではなくそれらを暗号化してください。暗号化はキーで元に戻すことができます。ユーザーが入力するパスワードは平文パスワードと呼ばれ、平文パスワードは絶対にどこにも書いたり保存したりしないでください。
何かがハッシュされるとき、それは一方通行ですハッシュを平文形式に戻すことは簡単にはできません。そのため、誰かが自分のパスワードを入力すると、ハッシュしてからデータベースに格納されているハッシュされたパスワードと比較します。
いくつかのハッシュアルゴリズムはMD5、SHA1などです。PHPでは、crypt関数を使ってパスワードをハッシュすることができます。 MD5とSHA1は非常に高速であるため、もはや安全ではないことに注意してください。つまり、かなり早くブルートフォースをかけることができるということです(かなり早くハッシュをリバースエンジニアリングできるデータベースもあります)。あなたはPHPのcrypt関数を使うべきです。
tl; dr - パスワードをハッシュ化し、それらを暗号化しません(セキュリティ、特にeコマースのため)。
回答№2の場合は0
他の答えが述べたように、あなたはあなたのパスワードを暗号化するべきではありません。彼らはハッシュされるべきです。
彼らはすべき NOT つかいます MD5
または SHA
君は すべきである つかいます bcrypt
ハッカーも同じことをする可能性があるため、値を復号化してパスワードを見ることができないようにする必要がないため、暗号化は使用しないでください。
ハッシュは一方向の暗号化に似ています。ハッシュを作成し、ログインするときに、ログイン時に入力したパスワードをハッシュし、保存されているハッシュと比較します。
MD5
そして SHA
あなたのパスワードを入手しようとすると、毎秒60億以上の割合で辞書の単語と一般的なパスワードをハッシュすることができるので、コンピュータはどんどん速くなっています。
このトピックはStackOverflowの死についてカバーされています。
使い方はこちら bcrypt
PHPでパスワードをハッシュするためにbcryptをどのように使用しますか?
そして、これは、理由についての説明のためです: PHPパスワード用の安全なハッシュとソルト