クライアント用に優れた強力な暗号化システムを作成する必要があります。機密性の高いユーザー情報を保存するために使用されます。この分野の経験が豊富な人からアドバイスをもらいたかっただけです。256 ビット AES が私の最良の選択肢のようです。
私が考えていたのはhttp://www.movable-type.co.uk/scripts/aes-php.html
キーとして、おそらく各ユーザーに固有のもののハッシュを使用しますか?
これは十分なアイデアのように聞こえますか?
クライアント用に優れた強力な暗号化システムを作成する必要があります。機密性の高いユーザー情報を保存するために使用されます。この分野の経験が豊富な人からアドバイスをもらいたかっただけです。256 ビット AES が私の最良の選択肢のようです。
私が考えていたのはhttp://www.movable-type.co.uk/scripts/aes-php.html
キーとして、おそらく各ユーザーに固有のもののハッシュを使用しますか?
これは十分なアイデアのように聞こえますか?
SHA は一方向にしか機能しません (誰かがこれを提案する前の MD5 の例と同じです)。彼は、必要なときに保存されたデータを簡単に復号化して読み取る方法も望んでいると思います。
AES は確かに非常に優れたオプションです。私は同じものを使用します。
ソリューションを共有ホスティング環境に展開しますか? 他のユーザーがアクセスできないように、必ず暗号化/復号化キーでファイルを chmod してください。家に鍵をかけ、ドアのすぐ前に鍵を置いたままにしても意味がありません。
AES は使用するのに最適な暗号化です。:)
私は AES 暗号化クラスを 1 年余り使用していますが、これは PHP で FIPS 準拠の AES 暗号化を使用する優れた方法です。このスクリプトには、無料版 (ECB モードのみ) と、わずか 10 ドルの有料版があります。
これは完全にスタンドアロンのクラスで、mcrypt ライブラリを必要とせず、php4 と php5 をサポートしています。暗号化は、暗号の長さに応じて、128、192、および 256 ビットで使用できます。
次のように簡単に使用できます。
include("AES.class.php");
$my_256_key = 'MpDsw*8cQM&fez*7eBoZB^W*kP652NoW';
$initialization_vector = 'WmR&z28zWn8r*9$R';
$aes = new AES($my_256_key, "CBC", $initialization_vector);
$string_to_encrypt = 'SOME STRING OF TEXT, OR EVEN AN ENTIRE FILE';
$encrypted_string = $aes->encrypt($string_to_encrypt);
$original_string = $aes->decrypt($encrypted_string);
サポートされている暗号モードは、Electronic Codebook (ECB)、Cipher Block Chaining (CBC)、Cipher Feedback (CFB)、および Output Feedback (OFB) です。–ブロック暗号モード »
実際の暗号化をスクリプトに統合する必要がある場合は、このクラスを強くお勧めします。クレジット カードなどの機密データを保存するのに十分な強度があり (キー管理は別のトピックです)、非常に簡単なインターフェイスを備えています。
暗号化は、使用されるキーとキー管理と同じくらい安全であることに注意してください。ハッシュ関数 (Md5、SHA1) を使用する場合とは異なり、暗号化は逆にすることができ、特に大量のデータを暗号化する場合に、PHP スクリプトの速度が大幅に低下します。