繁体   English   中英

用于加密和解密的 PHP 代码,在每次执行时创建不同的密文。 任何人都可以帮助我使用 PL/SQL 中的等效代码

[英]PHP code for encryption and decryption that creates different cipher text on each execution. Can anybody help me with an equivalent code in PL/SQL

$data = 'Durgadevi'.date('Y-m-d H:m:s');
$b = encrypt($data);
echo '<b>actual data: </b>'.$data.'<br><b> encrypted code: </b>'.$b;
function encrypt($string)
{
    $encrypt_method = "AES-256-CBC";
    $secret_key = '123456';
    $secret_iv = 'This is my secret iv';
    $key = hash('sha256',$secret_key);
    $iv = substr(hash('sha256',$secret_iv),0,16);
    $output = openssl_encrypt($string,$encrypt_method,$key,0,$iv);
    return $output;
}

执行加密功能后

输出:

实际数据:Durgadevi11:07:40

加密代码:Fxf6Q73Fs5byu6e2R0nTwG01n4vsoBAyfefSY5HBSWM=

$data = 'Fxf6Q73Fs5byu6e2R0nTwG01n4vsoBAyfefSY5HBSWM=';
$b = decrypt($data);
echo '<b> actual data: </b>'.$data.'<br><b> decrypted code: </b>'.$b;

function decrypt($string)
{
    $encrypt_method = "AES-256-CBC";
    $secret_key = '123456';
    $secret_iv = 'This is my secret iv';
    $key = hash('sha256',$secret_key);
    $iv = substr(hash('sha256',$secret_iv),0,16);
    $output = openssl_decrypt($string,$encrypt_method,$key,0,$iv);
    return $output;
}

执行解密函数后

输出:

实际数据:Fxf6Q73Fs5byu6e2R0nTwG01n4vsoBAyfefSY5HBSWM=

解密代码:Durgadevi11:07:40

您可以使用以下功能进行加密和解密。

function encryptDecrypt($action, $data) {
    $output = false;
    $encrypt_method = "AES-256-CBC";
    $secret_key ="g3hR0m9FY1r+9ZXLdriXI4U6AxsYqlbISe8Qne9DuJU9R1AlvsV1GWQMQhP0NcvvtnvSB1AoIBAQD8zQp+VhgSH";
    $secret_iv = "xaghJBqlqQPkox2djChy3+3tmEPZJpypp4Euy2sDLSgyP+nsecrkP18bfl2i+ChPAoIBAQC3FijLZr74H0m9oGj0hPAlfcAh5bTMvAF4993M8BjncApCzKMOK3CLT+278dquihNCyrbK6/FjDMw9sGl5kctenaOVcvtdupMWtX9U9KmH8G1XCX/Xr/umpgAxjh+l69v4lrDRln48/gT9zfdKjZ5OiuW+M+gbNL6qGAM";

    $key = hash('sha256', $secret_key);
    $iv = substr(hash('sha256', $secret_iv), 0, 16);

    if ($action == 'encrypt') {
        $output = openssl_encrypt($data, $encrypt_method, $key, 0, $iv);
        $output = base64_encode($output);
    } else if ($action == 'decrypt') {
        $output = openssl_decrypt(base64_decode($data), $encrypt_method, $key, 0, $iv);
    }
    return $output;
}

//Call as below

$string = 'Durgadevi'.date('Y-m-d H:m:s');
echo $encString = encryptDecrypt('encrypt', $string);
echo "<br/>";
echo encryptDecrypt('decrypt', $encString); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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