Encrypt/Decrypt Credit Card Number
// July 29th, 2009 // No Comments » // Code Snippet
Menyimpan nomor credit card di dalam database tanpa terenkripsi sangat riskan. Memakai algoritma enkripsi satu arah juga akan sia-sia, karena kita akan menggunakan nomor tersebut. Setelah googling saya menemukan satu metode yang cukup powerful yang bisa digunakan untuk mengenkripsi/decrypt nomor credit card yaitu mcrypt.
code ini untuk mengenkripsi saat akan menyimpan ke dalam database :
public static function cc_encrypt($string)
{
$cipher_alg = MCRYPT_RIJNDAEL_128;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg, MCRYPT_MODE_ECB), MCRYPT_RAND);
$encrypted_string = base64_encode(mcrypt_encrypt($cipher_alg, YOURKEY, $string, MCRYPT_MODE_CBC, $iv));
$iv_encode = base64_encode($iv);
return $encrypted_string.'_'.$iv_encode;
}
code ini untuk men-decrypt saat akan menggunakannya :
public static function cc_decrypt($encrypted_string)
{
$cipher_alg = MCRYPT_RIJNDAEL_128;
list($encrypted_string, $iv) = explode('_', $encrypted_string);
$decrypted_string = mcrypt_decrypt($cipher_alg, YOURKEY, base64_decode($encrypted_string), MCRYPT_MODE_CBC, base64_decode($iv));
$len = strlen($decrypted_string);
$j = $len-1;
while ($decrypted_string[$j] == "\0") $j--;
$decrypted_string = substr($decrypted_string, 0, $j+1);
return $decrypted_string;
}
Jangan lupa untuk mengganti konstanta YOURKEY dengan key anda. Gunakan key yang unique dan terdiri dari bermacam2 karakter.
Happy coding !



