diff options
| author | Marcin Łabanowski <marcin@6irc.net> | 2012-12-22 21:43:55 +0100 |
|---|---|---|
| committer | Marcin Łabanowski <marcin@6irc.net> | 2012-12-22 21:43:55 +0100 |
| commit | 49afb685c8e658c0f36b8171e176363538eb9419 (patch) | |
| tree | 1e51c6599bdc762f553f3352a928bf203c75df6b /inc/ic-encrypt.php | |
| parent | 2451a0f29c08e23ff36ef113082c112224f7e576 (diff) | |
| parent | 67e9fb587220a677cc15c4b1f8efe2764b8b1955 (diff) | |
Merge branch 'imgcaptcha' of https://github.com/asiekierka/Tinyboard
Diffstat (limited to 'inc/ic-encrypt.php')
| -rw-r--r-- | inc/ic-encrypt.php | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/inc/ic-encrypt.php b/inc/ic-encrypt.php new file mode 100644 index 00000000..5d73126b --- /dev/null +++ b/inc/ic-encrypt.php @@ -0,0 +1,37 @@ +<?php +// Z internetow. +class Encryption { + public function safe_b64encode($string) { + $data = base64_encode($string); + $data = str_replace(array('+','/','='),array('-','_',''),$data); + return $data; + } + + public function safe_b64decode($string) { + $data = str_replace(array('-','_'),array('+','/'),$string); + $mod4 = strlen($data) % 4; + if ($mod4) { + $data .= substr('====', $mod4); + } + return base64_decode($data); + } + + public function encode($key, $value){ + if(!$value){return false;} + $text = $value; + $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); + $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv); + return trim($this->safe_b64encode($crypttext)); + } + + public function decode($key, $value){ + if(!$value){return false;} + $crypttext = $this->safe_b64decode($value); + $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); + $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv); + return trim($decrypttext); + } +} +?> |
