欢迎访问宙启技术站
智能推送

php中加密解密DES的正确使用姿势

发布时间:2023-05-18 22:57:26

在PHP中,加密解密DES可以通过使用openssl扩展来完成。以下是正确使用姿势。

1. 创建一个加密密钥:

$secret_key = openssl_random_pseudo_bytes(8);

2. 将明文加密:

function des_encrypt($message, $key) {

    $ivlen = openssl_cipher_iv_length('des');

    $iv = openssl_random_pseudo_bytes($ivlen);

    $ciphertext = openssl_encrypt($message, 'des', $key, OPENSSL_RAW_DATA, $iv);

    return base64_encode($iv . $ciphertext);

}

$ciphertext = des_encrypt('Hello, world!', $secret_key);

3. 将密文解密:

function des_decrypt($ciphertext, $key) {

    $ivlen = openssl_cipher_iv_length('des');

    $ciphertext = base64_decode($ciphertext);

    $iv = substr($ciphertext, 0, $ivlen);

    $ciphertext = substr($ciphertext, $ivlen);

    $plaintext = openssl_decrypt($ciphertext, 'des', $key, OPENSSL_RAW_DATA, $iv);

    return $plaintext;

}

$plaintext = des_decrypt($ciphertext, $secret_key);

在编写加密和解密函数时,必须确保使用相同的加密算法、密钥和初始向量。由于DES算法的密钥长度非常短,因此不安全,因此建议改用更安全的加密算法,例如AES。