PHP MySQL:解密MySQL行中的列值,该行在插入和解析为JSON时被加密

PHP MySQL:解密MySQL行中的列值,该行在插入和解析为JSON时被加密,php,mysql,json,encryption,Php,Mysql,Json,Encryption,一切正常,我只想用以下示例解密数据库中包含信用卡号的db列: $decp = $crypt->decrypt($encp); 这一行是: 'Number' => $row['cardNumber'], 整个代码是: // get the cards $jsonresult = $conn->query("SELECT nameOnCard, cardNumber, cardType, cardDate, ccvCode

一切正常,我只想用以下示例解密数据库中包含信用卡号的db列:

$decp = $crypt->decrypt($encp);
这一行是:

'Number' => $row['cardNumber'],
整个代码是:

// get the cards
$jsonresult = $conn->query("SELECT nameOnCard, cardNumber, cardType, cardDate, ccvCode
                                FROM cy_user_credit_cards
                                WHERE accountNumber='$accountNumber'");
$creditCard = [];
while ($row = mysqli_fetch_assoc($jsonresult)) {
    array_push($creditCard, [
        'Name'   => $row['nameOnCard'],
        'Number' => $row['cardNumber'],
        'Type' => $row['cardType'],
        'Date' => $row['cardDate'],
        'ccv' => $row['ccvCode']
    ]);
}

    // Convert the Array to a JSON String and echo it
    $ccJSON = json_encode($creditCard);
    echo $ccJSON;
$conn->close();

我想你会想这样做:

// get the cards
$jsonresult = $conn->query("SELECT nameOnCard, cardNumber, cardType, cardDate, ccvCode
                                FROM cy_user_credit_cards
                                WHERE accountNumber='$accountNumber'");
$creditCard = [];
while ($row = mysqli_fetch_assoc($jsonresult)) {
    array_push($creditCard, [
        'Name'   => $row['nameOnCard'],
        'Number' => $crypt->decrypt($row['cardNumber']),
        'Type' => $row['cardType'],
        'Date' => $row['cardDate'],
        'ccv' => $row['ccvCode']
    ]);
}

    // Convert the Array to a JSON String and echo it
    $ccJSON = json_encode($creditCard);
    echo $ccJSON;
$conn->close();

请记住,如果不是绝对必要,您确实不希望将所有这些信用卡详细信息存储在数据库中。我劝你到别处去办理信用卡付款。

我想你会想这样做:

// get the cards
$jsonresult = $conn->query("SELECT nameOnCard, cardNumber, cardType, cardDate, ccvCode
                                FROM cy_user_credit_cards
                                WHERE accountNumber='$accountNumber'");
$creditCard = [];
while ($row = mysqli_fetch_assoc($jsonresult)) {
    array_push($creditCard, [
        'Name'   => $row['nameOnCard'],
        'Number' => $crypt->decrypt($row['cardNumber']),
        'Type' => $row['cardType'],
        'Date' => $row['cardDate'],
        'ccv' => $row['ccvCode']
    ]);
}

    // Convert the Array to a JSON String and echo it
    $ccJSON = json_encode($creditCard);
    echo $ccJSON;
$conn->close();

请记住,如果不是绝对必要,您确实不希望将所有这些信用卡详细信息存储在数据库中。我强烈建议您去别处处理信用卡支付。

您可以在将数据推入数组时解密字符串,如下所示:

array_push($creditCard, [
    'Name'   => $row['nameOnCard'],
    'Number' => $crypt->decrypt($row['cardNumber']),
    'Type' => $row['cardType'],
    'Date' => $row['cardDate'],
    'ccv' => $row['ccvCode']
]);

您可以在将数据推入数组时解密字符串,如下所示:

array_push($creditCard, [
    'Name'   => $row['nameOnCard'],
    'Number' => $crypt->decrypt($row['cardNumber']),
    'Type' => $row['cardType'],
    'Date' => $row['cardDate'],
    'ccv' => $row['ccvCode']
]);


我忘了提到我已经试过了,出于某种原因,它不起作用。最后的echo$ccJSON语句甚至不起作用?根本不起作用@NitsewReplace
echo$ccJSON带有
变量转储($ccJSON)并告诉我您得到了什么。数据库查询可能有问题。尝试执行
var_dump(mysqli_fetch_assoc($jsonresult))
我忘了提到我已经试过了,出于某种原因,它不起作用。最后的echo$ccJSON语句甚至不起作用?根本不起作用@NitsewReplace
echo$ccJSON带有
变量转储($ccJSON)并告诉我您得到了什么。数据库查询可能有问题。尝试执行
var_dump(mysqli_fetch_assoc($jsonresult))我忘了提到我已经试过了,它不起作用。我想你应该提到你是如何加密数据的。如果您试图使用
decrypt()
此列对列进行解密,但您本身使用
md5()
对其进行了加密,则肯定无法工作。在将loc插入数据库之前,能否将其添加到加密的位置?刻录:$encp=$crypt->encrypt($text)@Tinotenda我无法在PHP文档中搜索任何本机
encrypt()
函数(而且我以前从未使用过它)。我想你是把它当作插件用的吧?啊,我明白了。我认为答案就在插件的文档/手册中。也许你的自定义类只提供加密而不提供解密(这很奇怪),就像你使用了错误的函数一样。我忘了提到我已经尝试过了,它不起作用。我想你应该提到你是如何加密数据的。如果您试图使用
decrypt()
此列对列进行解密,但您本身使用
md5()
对其进行了加密,则肯定无法工作。在将loc插入数据库之前,能否将其添加到加密的位置?刻录:$encp=$crypt->encrypt($text)@Tinotenda我无法在PHP文档中搜索任何本机
encrypt()
函数(而且我以前从未使用过它)。我想你是把它当作插件用的吧?啊,我明白了。我认为答案就在插件的文档/手册中。也许您的自定义类只提供加密而不提供解密(这会很奇怪),就像或者您使用了错误的函数那样。