业务需要PHP和Python共享Memcache,因此自己实现了一个memcache的hash规则,用CRC32。但是突然发现Pyhton2.x的binascii.crc32的范围有负数。因此写了一个测试脚本来验证:
<?PHP
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-+=';
while(True) {
$len = rand(1,20);
$key = '';
for( $i=0;$i<$len;$i++)
$key .= substr( $chars, rand(0,strlen($chars)),1);
print( $key. ",". crc32($key) . "\n" );
}
# python
import binascii
if __name__=="__main__":
import sys
while True:
line =sys.stdin.readline()
if not line: break
line = line.strip()
a,b = line.split(',',1)
crc32 = binascii.crc32(a) & 0xFFFFFFFF
if str(crc32) != b:
print a,b,crc32
执行:
php crc32.php | python crc32.py
没有输出就对了!
分享到:
相关推荐
用Python写的crc32碰撞代码。可用来碰撞压缩包密码。。。。
使用Python3.8写的CRC16_xmodem以及CRC32计算工具,支持字符串及文件,支持文件拖拽。Python计算速度太慢,增加了使用C语言编写的CRC计算库,加快计算速度,可以选择是否使用C语言计算库。 支持32位和64位Python。 ...
文件名列表中的"crc32.py"可能是用于生成和测试CRC32碰撞的Python脚本。这个脚本可能会实现以下功能: 1. 生成具有特定CRC32值的随机数据。 2. 尝试替换ZIP文件内的加密文件,计算新的CRC32值并与原始值比较。 3. ...
在这个压缩包中,我们可以看到与CRC相关的三个主要版本:CRC32、CRC16和CRC64。它们之间的主要区别在于校验码的长度和相应的多项式。 1. **CRC32**: CRC32使用32位的校验码,其算法基于一个32位的生成多项式。在...
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测方法。在C#编程环境中,CRC32校验通常用于确保数据在传输或存储过程中没有发生错误。这个压缩包"crc_32_c.rar"包含了...
Python中可以使用`binascii`库中的`crc32`函数来计算CRC32值。例如,要计算字符串的CRC32: ```python import binascii target_crc32 = 0x12345678 # 假设这是目标CRC32值 input_str = "未知四位字符" # 这是我们...
1. **定义CRC32类**:创建一个名为 `CRC32Cls` 的类,其中包含用于生成CRC32查找表的方法 `GetCRC32Table()` 和用于获取指定字符串CRC32校验值的方法 `GetCRC32Str(string sInputString)`。 2. **调用示例**:定义...
### ORACLE CRC32函数详解 #### 一、概述 在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成...
2022年最强万能crc32爆破脚本,支持各种类型的图片格式例如:JPG、PNG、bmp、GIF等。
### CRC32数值表查表知识点解析 #### 一、CRC基本概念介绍 循环冗余校验(Cyclic Redundancy Check,简称CRC)是一种数据校验技术,主要用于检测或纠正传输过程中的错误。CRC算法基于多项式除法,通过在发送端计算...
CRC计算工具是实现这一功能的软件工具,能够生成不同类型的CRC校验码,例如CRC8、CRC16和CRC32等。 CRC32是最常见的CRC版本,它使用32位的校验码。这个校验码是通过对原始数据执行特定的二进制除法运算并取模得到的...
CRC32,全称为Cyclic Redundancy Check 32位,是一种广泛应用于数据通信和存储领域的错误检测码,主要用于确保数据传输或存储的完整性。在FPGA(Field-Programmable Gate Array)设计中,CRC32模块是实现这种错误...
CRC-32和CRC-32/MPEG-2的校验方法实现源码-Labview版本(2015),提供2种CRC-32的labview方法,提供CRC-32/MPEG-2校验的Labview版本(2015)方法和MATLAB function函数,可以在simunlink嵌入式function调用。
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测方法。它通过计算数据的校验码来检验数据在传输或存储过程中是否发生错误。在这个"文件、字符串进行CRC32校验的DLL...
CRC32、MD5、SHA1以及SHA256是计算机科学中常见的散列函数,它们在数据完整性检查、安全认证、文件校验等方面发挥着重要作用。这些算法都是基于不同的数学原理设计,各有其特点和应用场景。 CRC32(Cyclic ...
"crc32-master"这个文件名可能是一个关于CRC32的项目或库的主目录,可能包含了源代码、文档、示例等内容,帮助开发者理解和实现CRC32算法,也可能包含有关CRC碰撞测试的工具或实验。 总的来说,CRC32碰撞是一个相对...
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测技术。它的核心思想是通过计算数据的校验码,来判断数据在传输或存储过程中是否发生错误。在C语言环境中实现CRC32库,...
资源分类:Python库 所属语言:Python 资源全名:google_crc32c-1.1.5-cp38-cp38-win32.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储中的错误检测方法。它的核心原理是通过一个特定的算法,即CRC算法,对数据进行计算,生成一个固定长度的校验码,通常为32位。这个...
纯软件实现CRC32经常是借助于查表实现的,当计算CRC32过于频繁时可通硬件指令优化以减少对CPU的占用。目前Intel支持的用于计算CRC的有CRC32和PCLMULQDQ两个指令。本文仅讨论使用CRC32指令的使用。CRC32指令计算的是...