加密后如何解密一组数据 - php

问题描述

用户使用 PHP 登录或在我的网站中输入一些数据时,我正在尝试加密和解密用户数据,并且能够使用此方法对其进行加密

function encryptData($data,$key) {
    $enKey = base64_decode($key);
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data,'aes-256-cbc',$enKey,$iv);
    return base64_encode($encrypted.'::'.$iv);
}

然后也用这个解密

function decryptData($data,$key) {
    $enKey = base64_decode($key);
    list($encrypted_data,$iv) = array_pad(explode('::',base64_decode($data),2),2,null);
    return openssl_decrypt($encrypted_data,$iv);
}

如果我想获取特定数据,解密并向用户显示更容易,但是当数据以数组形式出现时,我该如何解密它就像

    $data = array();
    $sql = $conn->prepare("SELECT * FROM user_Feedback");
    $sql->execute();
    $res = $sql->get_result();
    if (MysqLi_num_rows($res) > 0) {
        while ($row = $res -> fetch_assoc()) {
            $data[] = $row;
        }


        echo decryptData(json_encode($data[0]['Feedback']),$key); //It works like this for single data
        echo decryptData(json_encode($data),$key); //but how do i do it like this


    }
    else {
        echo json_encode("NO_DATA");
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)