これは短くシンプルにしておきます。PHPのmcryptライブラリの一部として、40ほどの可能な暗号があります。ここを参照してください。
自分自身は暗号化についてあまり知らないので、使用する暗号に関係なく、復号化されたデータは暗号化されたデータと同じであるという前提で作業しています(そうでなければ、何が正しいのでしょうか?)
配列またはシリアル化された標準オブジェクトのいずれかを暗号化してから復号化する必要があります。mcryptライブラリの基本的な実装のいくつかの例をオンラインで閲覧しましたが、それぞれの例で異なる暗号が使用されていることに気付きました。これには何か意味があるのか、それとも単に個人的な好みなのか、疑問に思いました。
私の質問は、これらの暗号の間に重要な違いがあるかどうかです。
- 暗号化/復号化は配列またはシリアル化された標準オブジェクトのいずれかであり、データは比較的少なくなります。
- この操作はかなり珍しいので、速度は大きな問題ではなく、2秒未満の範囲であればどこでも許容されます。
- 暗号化された文字列はCookieに保存され、URLクエリ文字列を介して送信される必要があります(したがって、長さと文字セットに制限があります)
ノート
ハッシュとhmacのどちらを使うべきかについての議論は終わっていません。暗号化が必要であり、この問題に対する正しいオプションです。