📜  PHP openssl_digest()函数(1)

📅  最后修改于: 2023-12-03 15:18:20.595000             🧑  作者: Mango

PHP openssl_digest() 函数介绍

openssl_digest() 函数是 PHP 中用于进行散列计算的函数。散列计算可以将任意长度的数据转换成固定长度的散列值,通常用于确认数据的完整性和一致性。openssl_digest() 函数支持多种散列算法,包括 MD5、SHA1、SHA256、SHA384 等。

语法
openssl_digest(string $data, string $method, bool $raw_output = false): string|false

参数说明:

  • $data:要进行散列计算的数据。
  • $method:散列算法的名称,例如 'MD5''SHA1' 等。
  • $raw_output:是否输出原始的二进制散列值,如果为 true,则输出原始的二进制值;否则将二进制值转换成十六进制格式输出。

返回值:

  • 计算得到的散列值,以字符串形式返回。如果计算失败,则返回 false
示例
计算字符串的 MD5 散列值

以下示例演示如何使用 openssl_digest() 函数计算字符串 'hello world' 的 MD5 散列值:

$res = openssl_digest('hello world', 'MD5');
echo $res; // 输出 '5eb63bbbe01eeed093cb22bb8f5acdc3'
计算文件的 SHA256 散列值

以下示例演示如何使用 openssl_digest() 函数计算文件 'example.txt' 的 SHA256 散列值:

$file = '/path/to/example.txt';
$res = openssl_digest(file_get_contents($file), 'SHA256');
echo $res; // 输出 '4c7ad36b1a0dad7a12d4cfb5eb5cb5a5d5a5bb9d5fe5e745e16b984b3431ebff'
注意事项
  • 使用 openssl_digest() 函数计算散列值时,建议先对数据进行适当的编码,例如使用 utf8_encode() 将字符串编码为 UTF-8 格式,避免计算出错。
  • 不同的散列算法具有不同的安全性和性能,应根据具体的需求选择合适的算法。通常建议使用 SHA256 等较为安全的散列算法。