Crypt クラス

Crypt クラスにより文字列を暗号化や複号が可能になります。例えば、Sessions クラスにおいても Crypt クラスが内部で使用されています。

PHPSecLib により提供される暗号化とハッシング関数が使われているため、mcrypt のような利用可能なモジュールに影響されません。

設定

Crypt クラスの設定は app/config/crypt.php にて行います。これは、Crypt クラスを初めて利用するときか、必要な設定ファイルが無い場合に、乱数とともに生成・追加されます。

app/config/crypt.php への書き込み権限が必要です! もし不可能な場合、全ての設定項目が設定されているかどうか確認してください!

以下の設定項目を定義できます:

パラメータ デフォルト 説明
crypto_key string n/a 暗号ルーチンで使われるランダムな暗号キー。ユニークでランダムな値を設定するようにしてください!
crypto_iv string n/a 暗号ルーチンにおけるランダムな暗号初期ベクター。ユニークでランダムな値を設定するようにしてください!
crypto_hmac string n/a ハッシュに基づくメッセージ認証コード (HMAC) にて使われる乱数。ユニークでランダムな値を設定するようにしてください!

もしキーを手入力で指定する場合、キーはbase64エンコードした文字列で、デコードするために長さは4の倍数でなければなりません。必ず正しい長さになるよう指定してください!

encode($value, $key = false)

encode メソッドは文字列を暗号化します。オプションとして暗号キーが設定できます。

静的 No
パラメータ
パラメータ デフォルト 説明
$value 必須 エンコードする文字列
$key
false
エンコードに使われる任意のキー。false の場合、設定値である 'crypto_key' が適用されます。
返り値 string
// カスタムキーにより変数をエンコードする
$value = Crypt::encode($value, 'R@nd0mK~Y');

decode($value, $key = false)

decode メソッドは文字列を複号します。オプションとして暗号キーが設定できます。

静的 No
パラメータ
パラメータ デフォルト 説明
$value 必須 デコードされる文字列
$key
false
デコードに使われる任意のキー。false の場合、設定値である 'crypto_key' が適用される。
返り値 mixed - デコードされた文字列か、デコードできなかった場合は false を返します。
// キーにより変数をデコードする
$value = Crypt::decode($value, 'R@nd0mK~Y');