この質問は、さまざまな単語の選択で多くの質問が寄せられています(これにより、「検索するだけです!」と言うのが難しくなります)。この事実により、 The PHPでのURLパラメータ暗号化の包括的なガイド 。
ここで人々がやりたいこと
代わりに人々がすべきこと
説明
通常、人々は短いを望んでいます ランダムに見えるURL。これでは、暗号化してから認証する余地があまりありません 難読化するデータベースレコードID。そのためには、最小URL長が32バイト(HMAC-SHA256の場合)である必要があります。これは、base64でエンコードした場合は44文字です。
より簡単な戦略は、ランダムな文字列を生成することです( random_compat
を参照) random_bytes()
のPHP5実装の場合 およびrandom_int()
これらの文字列を生成するため)、代わりにその列を参照してください。
また、ハッシュが壊れています 単純な暗号解読による。彼らの結論は次のように述べています:
私が説明した攻撃はブルートフォース攻撃よりもはるかに優れているため、暗号化の観点からは、アルゴリズムが壊れていると見なされ、塩を回収するのは非常に簡単です。攻撃者がどちらの方向にもエンコーディングを実行できるようにし、理想的なハッシュ関数のプロパティ2を無効にします。
それに頼らないでください。