私は単純なZendアプリケーションに取り組んでおり、データベースに保存する前にすべての財務数値を暗号化し、必要に応じて復号化する必要があります。使っmcrypt_encrypt()
てみmcrypt_decrypt()
ました。図を復号化する必要があるため、定数初期化ベクトル(iv)を使用しましたが、これはまったくお勧めできません。
これが私のコードです:
define ('string','WdryhedeescmsfkirYNemsjdesapQ');
define ('iv', '$356?dWuSkm)@g%dnw#8mA*');
class FormatValues {
const string= 'WdryhedeescmsfkirYNemsjdesapQ';
const iv = '$356?dWuSkm)@g%dnw#8mA*';
public function encrypt($val){
$enc = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $val,self::string , MCRYPT_MODE_CBC,self::iv);
return $enc;
}
public function decrypt($val){
$dec = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $val,self::string , MCRYPT_MODE_CBC,self::iv), "\0");
return $dec;
}
}
このencrypt()
方法ではデータが暗号化されますが、復号化すると正しい数値が得られません。
どうしてこれなの?定数ivを持たずにデータを暗号化および復号化する他の方法はありますか?
前もって感謝します
チャル