PHP encrypt decrypt
Php
code posted
by
Caiwangqin
created at 16 Dec 10:47, updated at 18 Jan 11:11
Edit
|
Back
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<?php function getkeyiv($key_size, $iv_size, $key, $iv='') { if ($iv == '') { $iv = 'OpenSSL for Ruby rulez!'; } $iv = substr($iv,0,$iv_size); $gen = ''; do { $gen = $gen.md5($gen.$key.$iv,true); } while (strlen($gen)<($iv_size+$key_size)); $o[0] = substr($gen,0,$key_size); $o[1] = $iv; //this is not the generated IV, //just the original "salt" cut to the required size return $o; } function trimpadding($str) { if (ord($str[strlen($str)-1]) < 9) { return rtrim($str,$str[strlen($str)-1]); } else { return $str; } } function encipher($data_to_encode){ $key = 'secretkey'; $td = mcrypt_module_open(MCRYPT_TRIPLEDES, '', MCRYPT_MODE_CBC, ''); $iv_size = mcrypt_enc_get_iv_size($td); $key_size = mcrypt_enc_get_key_size($td); $genkey = getkeyiv($key_size, $iv_size,$key); if (mcrypt_generic_init($td,$genkey[0],$genkey[1]) != -1) { $encoded_data = mcrypt_generic($td, $data_to_encode); } mcrypt_generic_deinit($td); mcrypt_module_close($td); return base64_encode($encoded_data); } function decipher($encoded) { $key = 'secretkey'; $decrypted=''; $enc = base64_decode($encoded); $td = mcrypt_module_open(MCRYPT_TRIPLEDES, '', MCRYPT_MODE_CBC, ''); $iv_size = mcrypt_enc_get_iv_size($td); $key_size = mcrypt_enc_get_key_size($td); $genkey = getkeyiv($key_size, $iv_size,$key); if (mcrypt_generic_init($td,$genkey[0],$genkey[1]) != -1) { $decrypted = mdecrypt_generic($td, $enc); } mcrypt_generic_deinit($td); mcrypt_module_close($td); return trimpadding($decrypted); } ?> |
1.61 KB in 4 ms with coderay