PHP using mcrypt and store the encrypted in MySQL

來源:互聯網
上載者:User

標籤:

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.