首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

crc32

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

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

描述

代码语言:javascript
复制
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()函数打印转换后的校验和:

代码语言:javascript
复制
<?php
$checksum?=?crc32("The?quick?brown?fox?jumped?over?the?lazy?dog.");
printf("%u\n",?$checksum);
?>

扩展内容

  • hash() - 生成一个散列值(消息摘要)
  • md5() - 计算字符串的md5散列
  • sha1() - 计算字符串的sha1哈希

← count_chars

crypt →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com