• 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
    
    // Debug
    echo "Orignal Text  : $orignal_text
    ";
    echo "Encrypted Text: $encrypted_text
    ";
    echo "Decrypted Text: $decrypted_text";
    

    This respectively outputs the following:

    Orignal Text  : my secret message
    Encrypted Text: Z21ifr5dHEdE9nO8vaDWb9QkjooqCK4UI6D/Ui+fkpmXWwmxloy8hM+7oimtw1wE
    Decrypted Text: my secret message
    

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

  • 相关阅读:
    大道至简阅读笔记01
    构建之法阅读笔记06
    第二阶段个人工作总结(10)
    学习进度条(十四周)
    第二阶段个人工作总结(9)
    SapringMVC的文件上传下载以及拦截器
    Servlet的请求
    Servlet 的生命周期
    IO流
    set接口
  • 原文地址:https://www.cnblogs.com/wish123/p/5924139.html
Copyright © 2020-2023  润新知