Beim Versuch, die verschlüsselte Zeichenfolge zu entschlüsseln, wurde keine Antwort erhalten
P粉186904731
P粉186904731 2024-01-10 17:43:06
0
1
321

function encrypt($string, $key)
{
    $method = "BF-CBC";
    $iv = random_bytes(openssl_cipher_iv_length($method));
    $options = 0;
    $key = hash("sha256", $key);
    return openssl_encrypt($string, $method, $key, $options, $iv);
}

function decrypt($string, $key)
{
    $method = "BF-CBC";
    $iv = random_bytes(openssl_cipher_iv_length($method));
    $options = 0;
    $key = hash("sha256", $key);
    return openssl_decrypt($string, $method, $key, $options, $iv);
}

Mit diesen beiden Funktionen zum Ver- und Entschlüsseln von Daten funktioniert nur meine Verschlüsselung.

// Encrypting foo 
echo encrypt("foo", "hfgdhgdfhgfd");

// Response
DyUxPwraJyk=

// Decrypting DyUxPwraJyk= 
echo decrypt("DyUxPwraJyk=", "hfgdhgdfhgfd");

// Doesn't respond with anything.

Ich habe alles versucht, sogar die Funktion mehrmals umgeschrieben, aber nichts scheint zu funktionieren.

P粉186904731
P粉186904731

Antworte allen(1)
P粉895187266

$iv 选项有“初始化向量”,它的作用有点像盐:它为每条消息提供不同的初始状态,以便保证对同一消息加密两次不同的结果。

就像盐一样,在加密消息时应随机选择 IV,然后与消息一起传输或存储,以便在解密消息时可以提供相同的值。

您可能希望您的加密函数将$iv附加到输出,并解密将它们分离出来。

function encrypt($string, $key)
{
    $method = "BF-CBC";
    $iv = random_bytes(openssl_cipher_iv_length($method));
    $options = 0;
    $key = hash("sha256", $key);
    return base64_encode($iv)
        . '|'
        . openssl_encrypt($string, $method, $key, $options, $iv);
}

function decrypt($encryptedString, $key)
{
    $method = "BF-CBC";
    [ $iv, $ciphertext ] = explode('|', $encryptedString, 2);
    $iv = base64_decode($iv);
    $options = 0;
    $key = hash("sha256", $key);
    return openssl_decrypt($ciphertext, $method, $key, $options, $iv);
}

echo encrypt("foo", "hfgdhgdfhgfd");
# fJTTArVw8e8=|zJOHacxbs1Q=

echo decrypt("fJTTArVw8e8=|zJOHacxbs1Q=", "hfgdhgdfhgfd");
# foo
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!