<?php
$data = "wpdPVWejqNRYqDTeUJ2Iw06/rnfHAoy5jtgTojiilD0=";
$pwd = "ICS2015";
$salt = "7";
$dec = Decrypt($data, $pwd, $salt);
echo "Dec: " . $dec . "\r\n";
$enc = Encrypt("boy10@naver.com", $pwd, $salt);
echo "Enc: " . $enc . "\r\n";
function Decrypt($ciphertext, $password, $salt)
{
$ciphertext = base64_decode($ciphertext);
$key = PBKDF1($password, $salt, 100, 32);
$iv = PBKDF1($password, $salt, 100, 16);
// NB: Need 128 not 256 and CBC mode to be compatible
$decpad = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ciphertext, MCRYPT_MODE_CBC, $iv);
$pad = ord($decpad[($len = strlen($decpad)) - 1]);
$dec = substr($decpad, 0, strlen($decpad) - $pad);
return $dec;
}
function Encrypt($ciphertext, $password, $salt)
{
$key = PBKDF1($password, $salt, 1000, 32);
echo "key: " . base64_encode($key) . "\r\n";
$iv = PBKDF1($password, $salt, 1000, 16);
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $ciphertext, MCRYPT_MODE_CBC, $iv));
}
function PBKDF1($pass,$salt,$count,$dklen) {
$t = $pass.$salt;
//echo 'S||P: '.bin2hex($t).'<br/>';
$t = sha1($t, true);
//echo 'T1:' . bin2hex($t) . '<br/>';
for($i=2; $i <= $count; $i++) {
$t = sha1($t, true);
//echo 'T'.$i.':' . bin2hex($t) . '<br/>';
}
$t = substr($t,0,$dklen);
return $t;
}
?>
preferences:
66.6 ms | 408 KiB | 5 Q