简体   繁体   中英

php from mcrypt to openssl

Since this day I've used mcrypt on my website to encrypt the users e-mail address. The php mcrypt module was installed with php 7.4 on my last server so it didn't make any problems. Since I needed to change the hosting company, they won't provide me with a mcrypt installation on their server. So I'll need to change the function which will be supported on php 7.4. I had this function to encrypt my users e-mail address for security reasons if a sql injection ever happened.

function encrypt_128($string){
    $string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB)));
    return $string;

I've replaced with this function but it doesn't return the same output.

function encrypt_128($string){

    return rtrim(base64_encode(openssl_encrypt($string, 'aes-256-ecb', $key, OPENSSL_RAW_DATA)));

I've read that mcrypt uses no padding and I tried adding OPENSSL_ZERO_PADDING but it can't encrypt the users e-mail address anymore, and returns no output. I'll need the function to make the same output because the new users can register with the same e-mail address as the old users.

It turns out it isn't a way to make this possible I just decrypted all my data and re encrypted them with the new algorithm. It took long but it was a needed change. If anyone knows how feel free to post an answer.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM