summaryrefslogtreecommitdiff
path: root/inc/ic-encrypt.php
diff options
context:
space:
mode:
authorMarcin Łabanowski <marcin@6irc.net>2012-12-22 21:43:55 +0100
committerMarcin Łabanowski <marcin@6irc.net>2012-12-22 21:43:55 +0100
commit49afb685c8e658c0f36b8171e176363538eb9419 (patch)
tree1e51c6599bdc762f553f3352a928bf203c75df6b /inc/ic-encrypt.php
parent2451a0f29c08e23ff36ef113082c112224f7e576 (diff)
parent67e9fb587220a677cc15c4b1f8efe2764b8b1955 (diff)
Merge branch 'imgcaptcha' of https://github.com/asiekierka/Tinyboard
Diffstat (limited to 'inc/ic-encrypt.php')
-rw-r--r--inc/ic-encrypt.php37
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);
+ }
+}
+?>