首页 > 代码库 > PHP using mcrypt and store the encrypted in MySQL

PHP using mcrypt and store the encrypted in MySQL

This is how I would do it. Create a class to do encryption/decryption:

class cipher{    private $securekey;    private $iv_size;    function __construct($textkey)    {        $this->iv_size = mcrypt_get_iv_size(            MCRYPT_RIJNDAEL_128,            MCRYPT_MODE_CBC        );        $this->securekey = hash(            ‘sha256‘,            $textkey,            TRUE        );    }    function encrypt($input)    {        $iv = mcrypt_create_iv($this->iv_size);        return base64_encode(            $iv . mcrypt_encrypt(                MCRYPT_RIJNDAEL_128,                $this->securekey,                $input,                MCRYPT_MODE_CBC,                $iv            )        );    }    function decrypt($input)    {        $input = base64_decode($input);        $iv = substr(            $input,            0,            $this->iv_size        );        $cipher = substr(            $input,            $this->iv_size        );        return trim(            mcrypt_decrypt(                MCRYPT_RIJNDAEL_128,                $this->securekey,                $cipher,                MCRYPT_MODE_CBC,                $iv            )        );    }}

Then use it like this:

// Usage$cipher = new cipher(‘my-secret-key‘);$orignal_text = ‘my secret message‘;$encrypted_text = $cipher->encrypt($orignal_text);   // store this in db$decrypted_text = $cipher->decrypt($encrypted_text); // load $encrypted_text from db// Debugecho "Orignal Text  : $orignal_text\r\n";echo "Encrypted Text: $encrypted_text\r\n";echo "Decrypted Text: $decrypted_text";

This respectively outputs the following:

Orignal Text  : my secret messageEncrypted Text: Z21ifr5dHEdE9nO8vaDWb9QkjooqCK4UI6D/Ui+fkpmXWwmxloy8hM+7oimtw1wEDecrypted Text: my secret message

 

来源:http://stackoverflow.com/questions/26756322/php-using-mcrypt-and-store-the-encrypted-in-mysql

PHP using mcrypt and store the encrypted in MySQL