Support

Account

Home Forums General Issues Encrypting Field for SSN? Reply To: Encrypting Field for SSN?

  • Just popping in to provide this information on hashing/unhashing because the link to andrewwho.nl is no longer.

    function dec_enc($action, $string) {
        $output = false;
     
        $encrypt_method = "AES-256-CBC";
        $secret_key = 'This is my secret key';
        $secret_iv = 'This is my secret iv';
     
        // hash
        $key = hash('sha256', $secret_key);
        
        // iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
        $iv = substr(hash('sha256', $secret_iv), 0, 16);
     
        if( $action == 'encrypt' ) {
            $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
            $output = base64_encode($output);
        }
        else if( $action == 'decrypt' ){
            $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
        }
     
        return $output;
    }

    Source: https://web.archive.org/web/20161229224924/https://andrewho.nl/encrypt-decrypt-strings-php-easy-way/