如何用PHP的openssl扩展编写一个长尾词的加解密方法示例?

2026-04-01 08:481阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计242个文字,预计阅读时间需要1分钟。

如何用PHP的openssl扩展编写一个长尾词的加解密方法示例?

自PHP7版本开始,许多依赖mcrypt扩展的方法都不再被支持。PHP7.2.0及以上版本已经完全不再支持mcrypt扩展。因此,PHP7及以上版本应使用openssl扩展来实现加密和解密。以下是一个使用DES-CBC加密方式的示例:php// 加密函数function encrypt($data, $key) { $key=substr(hash('sha256', $key, true), 0, 32); $iv=random_bytes(16); $encrypted=openssl_encrypt($data, 'des-cbc', $key, OPENSSL_RAW_DATA, $iv); return base64_encode($iv . $encrypted);}

如何用PHP的openssl扩展编写一个长尾词的加解密方法示例?

// 解密函数function decrypt($data, $key) { $data=base64_decode($data); $key=substr(hash('sha256', $key, true), 0, 32); $iv=substr($data, 0, 16); $encrypted=substr($data, 16); $decrypted=openssl_decrypt($encrypted, 'des-cbc', $key, OPENSSL_RAW_DATA, $iv); return $decrypted;}

// 示例$key='example_key';$data='Hello, world!';$encrypted=encrypt($data, $key);$decrypted=decrypt($encrypted, $key);

echo Encrypted: . $encrypted . \n;echo Decrypted: . $decrypted . \n;

从PHP7版本开始很多依赖mcrypt扩展的方法都不支持了,PHP7.2.0及以上版本已经完全不支持mcrypt扩展的任何方法了,所以PHP7及以上版本都应该使用openssl扩展来实现加解密。

以DES-CBC加密方式为例:

<?php class DesUtil { /** * Des 加密 * * @param $str * @param $secretKey * @param string $iv * @return string */ public static function encrypt($str, $secretKey, $iv = '') { return base64_encode(openssl_encrypt($str, 'des-cbc', $secretKey, OPENSSL_RAW_DATA, $iv)); } /** * Des 解密 * * @param $str * @param $secretKey * @param string $iv * @return string */ public static function decrypt($str, $secretKey, $iv = '') { return openssl_decrypt(base64_decode($str), 'des-cbc', $secretKey, OPENSSL_RAW_DATA, $iv); } }

到此这篇关于PHP使用openssl扩展实现加解密方法示例的文章就介绍到这了,更多相关PHP openssl扩展实现加解密内容请搜素易盾网络以前的文章或下面相关文章,希望大家以后多多支持易盾网络!

本文共计242个文字,预计阅读时间需要1分钟。

如何用PHP的openssl扩展编写一个长尾词的加解密方法示例?

自PHP7版本开始,许多依赖mcrypt扩展的方法都不再被支持。PHP7.2.0及以上版本已经完全不再支持mcrypt扩展。因此,PHP7及以上版本应使用openssl扩展来实现加密和解密。以下是一个使用DES-CBC加密方式的示例:php// 加密函数function encrypt($data, $key) { $key=substr(hash('sha256', $key, true), 0, 32); $iv=random_bytes(16); $encrypted=openssl_encrypt($data, 'des-cbc', $key, OPENSSL_RAW_DATA, $iv); return base64_encode($iv . $encrypted);}

如何用PHP的openssl扩展编写一个长尾词的加解密方法示例?

// 解密函数function decrypt($data, $key) { $data=base64_decode($data); $key=substr(hash('sha256', $key, true), 0, 32); $iv=substr($data, 0, 16); $encrypted=substr($data, 16); $decrypted=openssl_decrypt($encrypted, 'des-cbc', $key, OPENSSL_RAW_DATA, $iv); return $decrypted;}

// 示例$key='example_key';$data='Hello, world!';$encrypted=encrypt($data, $key);$decrypted=decrypt($encrypted, $key);

echo Encrypted: . $encrypted . \n;echo Decrypted: . $decrypted . \n;

从PHP7版本开始很多依赖mcrypt扩展的方法都不支持了,PHP7.2.0及以上版本已经完全不支持mcrypt扩展的任何方法了,所以PHP7及以上版本都应该使用openssl扩展来实现加解密。

以DES-CBC加密方式为例:

<?php class DesUtil { /** * Des 加密 * * @param $str * @param $secretKey * @param string $iv * @return string */ public static function encrypt($str, $secretKey, $iv = '') { return base64_encode(openssl_encrypt($str, 'des-cbc', $secretKey, OPENSSL_RAW_DATA, $iv)); } /** * Des 解密 * * @param $str * @param $secretKey * @param string $iv * @return string */ public static function decrypt($str, $secretKey, $iv = '') { return openssl_decrypt(base64_decode($str), 'des-cbc', $secretKey, OPENSSL_RAW_DATA, $iv); } }

到此这篇关于PHP使用openssl扩展实现加解密方法示例的文章就介绍到这了,更多相关PHP openssl扩展实现加解密内容请搜素易盾网络以前的文章或下面相关文章,希望大家以后多多支持易盾网络!