PHPでデータを暗号化する
PHPでデータを暗号化するには、以下の手順を踏む必要があります。
暗号化アルゴリズムの選択
暗号化キーの生成
データの暗号化
データの復号化
以下は、PHPでデータを暗号化するクラスの例です。このクラスは、AES暗号化アルゴリズムを使用してデータを暗号化し、復号化します。
class Encryption {
protected $method = 'AES-256-CBC';
protected $key;
public function __construct($key) {
$this->key = hash('sha256', $key, true);
}
public function encrypt($data) {
$ivSize = openssl_cipher_iv_length($this->method);
$iv = openssl_random_pseudo_bytes($ivSize);
$encrypted = openssl_encrypt($data, $this->method, $this->key, OPENSSL_RAW_DATA, $iv);
return base64_encode($iv . $encrypted);
}
public function decrypt($data) {
$data = base64_decode($data);
$ivSize = openssl_cipher_iv_length($this->method);
$iv = substr($data, 0, $ivSize);
$encrypted = substr($data, $ivSize);
return openssl_decrypt($encrypted, $this->method, $this->key, OPENSSL_RAW_DATA, $iv);
}
}
このクラスを使用するには、以下のようにします。
$key = 'My secret key';
$encryption = new Encryption($key);
$data = 'This is my secret data';
$encrypted = $encryption->encrypt($data);
echo $encrypted; // 例: "aIbYs1dkM1zQw==:sRcLQ8/H0+wBkZd0ll9XJcLPOL6hq08U6zk0UwKLDzg="
echo $encryption->decrypt($encrypted); // "This is my secret data"
この例では、SHA-256ハッシュを使用して、キーの長さをAES-256-CBC暗号化アルゴリズムに合わせて調整しました。また、データを暗号化する前に、ランダムなIVを生成しています。これにより、同じデータが暗号化されても、異なる暗号化テキストが生成されます。