使用 php openssl_encrypt 的正确方法
我正在一个项目上使用密码学,我需要一些关于如何工作的帮助,我只是想知道最基本和正确的方法来做到这一点。以下是我到目前为止所得到的:openssl_encrypt
openssl_decrypt
// To encrypt a string
$dataToEncrypt = 'Hello World';
$cypherMethod = 'AES-256-CBC';
$key = random_bytes(32);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($cypherMethod));
$encryptedData = openssl_encrypt($dataToEncrypt, $cypherMethod, $key, $options=0, $iv);
然后,我存储 、 和 以供解密时使用。(让我们不要详细说明我如何存储值,谢谢!$cypherMethod
$key
$iv
$encryptedData
// To decrypt an encrypted string
$decryptedData = openssl_decrypt($encryptedData, $cypherMethod, $key, $options=0, $iv);
首先,上面的示例代码是否是如何使用的正确示例?php openssl_encrypt
其次,我的方法生成正确和安全吗?因为我一直在阅读,所以密钥应该是加密安全的。$key
$iv
最后,不是 需要值吗?如果是,那么为什么它仅作为长度返回?难道不应该吗?32-byte
AES-256-CBC
openssl_cipher_iv_length()
int(16)
int(32)