PHP 暗号化 〜openssl_encryptを使う〜

イントロダクション

前回、レンタルサーバー上でJavaを起動しようとして、結局は起動できませんでした。。。

結局は、PHPで暗号化することにしました。そして、サンプルがあったのでそれを失敬して、作成しました。

/** 暗号化メソッド */
function encrypt($post_str, $passphrase, $iv) {
    //暗号化用のメソッドを指定
    $method = 'AES-256-CBC';
    //利用可能な暗号メソッドの一覧を取得するには openssl_get_cipher_methods() を使用;
    /*
    $ciphers = openssl_get_cipher_methods();
    var_dump($ciphers);
    */
    //暗号化を実施
    $options = OPENSSL_RAW_DATA;
    return openssl_encrypt($post_str, $method, $passphrase, $options, $iv);
}

/** 復号メソッド */
function decrypt($post_str, $passphrase, $mst_iv) {
    //暗号化用のメソッドを指定
    $method = 'AES-256-CBC';
    $iv = getIv($method);
    //復元を実施
    $options = OPENSSL_RAW_DATA;
    $res = openssl_decrypt($post_str, $method, $passphrase, $options, $mst_iv);
vreturn $res;
}

/** ivを取得する */
function getIv($method) {
    //暗号初期化ベクトル (iv) の長さを取得
    $iv_size = openssl_cipher_iv_length($method);

    //暗号モードに対するIVの長さに合わせたキーを生成します
    return openssl_random_pseudo_bytes($iv_size);
}

上記のコードは暗号化と復号化の処理(メソッド)です。これを使用して実際に暗号と復号を行います。サンプルとしてブラウザで入力できるものを作りました。
良かったら見てやってください。

こんな感じで、暗号化する文言を入力した後に「暗号化出力」以下の部分に結果が出力されます。「復号化処理」の結果も同じ場所に出力されます。
暗号化処理のサンプル

インターネットに繋がるのが「普通」の時代なので「セキュリティ」がとても重要な時代ですね。会社間で使用するデータなどは暗号化が必須になりますので、今後IT業界で何かやろうとしている人は知っておくと便利なのではないでしょうか?

でわでわ。。。

関連ページ