$td = mcrypt_module_open('des', '', 'ecb', ''); $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); 转成openssl的$iv
时间: 2023-12-05 13:04:37 浏览: 43
在 OpenSSL 中,可以使用 `openssl_random_pseudo_bytes()` 函数生成初始向量(IV),来替代 `mcrypt_create_iv()` 函数。同时,需要注意的是,OpenSSL 中的加密算法名称与 mcrypt 不同,需要进行转换。
对于 `mcrypt_module_open('des', '', 'ecb', '')` 这一行代码,可以转换为以下 OpenSSL 代码:
```php
$cipher = 'des-ecb';
$key = 'your_key';
// 创建 OpenSSL 加密上下文
$ctx = openssl_cipher_init($cipher, null, $key, OPENSSL_RAW_DATA);
// 生成初始向量
$ivlen = openssl_cipher_iv_length($cipher); // 获取 IV 长度
$iv = openssl_random_pseudo_bytes($ivlen); // 生成 IV
// 加密
$encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv);
```
在这个示例中,首先定义了加密算法名称和密钥。然后使用 `openssl_cipher_init()` 函数创建 OpenSSL 加密上下文,其中第一个参数为加密算法名称,第二个参数为加密选项(这里为 null),第三个参数为密钥。接着,使用 `openssl_cipher_iv_length()` 函数获取 IV 长度,使用 `openssl_random_pseudo_bytes()` 函数生成随机初始向量。最后,使用 `openssl_encrypt()` 函数进行加密。
需要注意的是,OpenSSL 中的加密算法名称与 mcrypt 不同。例如,mcrypt 中的 DES-ECB 加密算法在 OpenSSL 中对应的名称为 des-ecb。因此,需要根据实际情况进行转换。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)