วันจันทร์ที่ 3 มกราคม พ.ศ. 2554

php encryption

ทดสอบการเข้ารหัส
download libmcrypt.dll ไปไว้ที่ C:\Windows\system32\
http://files.edin.dk/php/win32/mcrypt/
แก้ไข php.ini
;extension=php_mcrypt.dll
เป็น
extension=php_mcrypt.dll
restart apache


<?php

$iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = 'keytest';
$data = 'data-test';
$edata = mcrypt_encrypt(MCRYPT_3DES, $key, $data, MCRYPT_MODE_CBC,$iv);
$ddata = trim(mcrypt_decrypt(MCRYPT_3DES, $key, $edata, MCRYPT_MODE_CBC,$iv),"\0");

echo '<br>data='.$data;
echo '<br>edata='.$edata;
echo '<br>data='.$ddata;

?>




<?php

$iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = 'keytest';
$data = 'data-test';

$edata = mcrypt_encrypt(MCRYPT_3DES, $key, $data, MCRYPT_MODE_CBC,$iv);
$edata .= $iv;

//สมมุติว่า edata ถูกส่งมา ในรูปแบบ $edata ต่อท้ายด้วย $iv
$iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_CBC);
//แยกข้อมูลออกเป็น $edata และ $iv
$temp = $edata;
$edata = substr($temp,0,-$iv_size);
$iv = substr($temp,-$iv_size);
//ทำการแปลงค่าตามปกติ
$ddata = trim(mcrypt_decrypt(MCRYPT_3DES, $key, $edata, MCRYPT_MODE_CBC,$iv),"\0");

echo '<br>data='.$data;
echo '<br>edata='.$edata;
echo '<br>data='.$ddata;

?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น