PHP

crc32

crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

crc32 - 计算字符串的crc32多项式

描述

int crc32 ( string $str )

生成str的32位长度的循环冗余校验和多项式。 这通常用于验证正在传输的数据的完整性。

警告

由于PHP的整数类型是有符号的,因此许多crc32校验和会在32位平台上产生负整数。在64位安装中,所有的crc32()结果都是正整数。

因此,您需要使用sprintf()或printf()的“%u”格式化程序以十进制格式获取未签名的crc32()校验和的字符串表示形式。

对于校验和的十六进制表示,您可以使用sprintf()或printf()或dechex()转换函数的“%x”格式化程序,这两种方法都可以将crc32()结果转换为无符号整数。

有64位安装也返回负整数为更高的结果值被考虑,但会打破十六进制转换为负面会得到额外的0xFFFFFFFF ########偏移。由于十六进制表示法似乎是最常见的用例,因此即使在从32位移动到64位时约50%的情况下它打破了直接十进制比较,我们仍决定不会破坏这一点。

回想起来,函数返回一个整数可能不是最好的想法,并立即返回一个十六进制字符串表示形式(例如md5())可能是一个更好的计划。

对于更便携的解决方案,您可能还会考虑通用散列()。 hash(“crc32b”,$ str)将返回与str_pad(dechex(crc32($ str)),8,'0',STR_PAD_LEFT相同的字符串。

参数

str

数据。

返回值

以整数形式返回str的crc32校验和。

例子

示例#1显示crc32校验和

此示例显示如何使用printf()函数打印转换后的校验和:

<?php $checksum = crc32("The quick brown fox jumped over the lazy dog." printf("%u\n", $checksum ?>

扩展内容

  • hash() - 生成一个散列值(消息摘要)

  • md5() - 计算字符串的md5散列

  • sha1() - 计算字符串的sha1哈希

← count_chars

crypt →