p=openssl_pkey_get_public(file_get_contents('publickey')); } function encrypt($message){ $iv=$this->createUniqueIV(); $dk=generate_random(32); $uk_ = $dk ^ $this->getuk(); openssl_public_encrypt($dk, $dk_,$this->p); return base64_encode(serialize(array('cipher'=>openssl_encrypt ($message, 'aes192', $dk, false,$iv),'iv'=>$iv, 'uk_'=>$uk_, 'dk_'=>$dk_))); } function decrypt($result){ $array=unserialize(base64_decode($result)); $uk=$this->getuk(); $dk=$array['uk_']^$uk; return openssl_decrypt ($array['cipher'], 'aes192', $dk, false,$array['iv']); } } ######################ADMIN class E_adminside { var $P; function createUniqueIV(){ return generate_random(8); } function fetchPrivateKey(){ $this->P=openssl_pkey_get_private(file_get_contents('privatekey')); } function encryptComment($message,$params){ openssl_private_decrypt($params['dk_'], $dk,$this->P); $iv=$this->createUniqueIV(); return array('cipher'=>openssl_encrypt ($message, 'aes192', $dk, false,$iv),'iv'=>$iv, 'uk_'=>$params['uk_'], 'dk_'=>$params['dk_']); } function decrypt($data){ $array=unserialize(base64_decode($data)); openssl_private_decrypt($array['dk_'], $dk,$this->P); return openssl_decrypt ($array['cipher'], 'aes192', $dk, false,$array['iv']); } } ?>