业务需要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碰撞代码。可用来碰撞压缩包密码。。。。
crc32 & md5 & sha1 & sha256 c实现。有例子。
2022年最强万能crc32爆破脚本,支持各种类型的图片格式例如:JPG、PNG、bmp、GIF等。
使用Python3.8写的CRC16_xmodem以及CRC32计算工具,支持字符串及文件,支持文件拖拽。Python计算速度太慢,增加了使用C语言编写的CRC计算库,加快计算速度,可以选择是否使用C语言计算库。 支持32位和64位Python。 ...
资源分类:Python库 所属语言:Python 资源全名:google_crc32c-1.1.5-cp38-cp38-win32.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
CRC-32和CRC-32/MPEG-2的校验方法实现源码-Labview版本(2015),提供2种CRC-32的labview方法,提供CRC-32/MPEG-2校验的Labview版本(2015)方法和MATLAB function函数,可以在simunlink嵌入式function调用。
纯软件实现CRC32经常是借助于查表实现的,当计算CRC32过于频繁时可通硬件指令优化以减少对CPU的占用。目前Intel支持的用于计算CRC的有CRC32和PCLMULQDQ两个指令。本文仅讨论使用CRC32指令的使用。CRC32指令计算的是...
crc32标准算法: 宽度:32 多项式:04C11DB7 初始值:0xFFFFFFFF 异或值:0xFFFFFFFF 输入输出数据反转; 与在线工具算出的crc32值一样,包含文件校验。
CRC32计算程序,生成多项式是: G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 该生成多项式是IEEE的标准,应用在ETH,wifi等多个协议里面。 电脑上的文件校验工具,也基本采用这个crc32. 用matlab...
CRC计算工具包括,包括CRC8 、CRC16、CRC32 和 CRC-32/MPEG-2 以及CRC32/MPEG-2的计算函数 和工具上做了对比一致,方便计算PSM包校验使用
CRC32 C实例代码 //*********************************************** DWORD CCrc32Static::StringCrc32(LPCTSTR szString, DWORD &dwCrc32) { _ASSERTE(szString); DWORD dwErrorCode = NO_ERROR; dwCrc32 = 0...
本工具支持常用的所有CRC校验 比如: CRC-4/TU CRC-5/EPC CRC-5/ITU CRC-6/TU CRC-7/MMC CRC-8 CRC-8/ITU CRC-8/ROHC CRC-8/MAXIM CRC-16/BM CRC-16/MAXIM CRC-16/USB CRC-16/MODBUS ...CRC-32/MPEG-2
Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。 base64模块的base64编码、解码调用了binascii模块,...
非常简易的CRC32 计算对于任意大小文件进行CRC32计算 目前采用的是POLY为0xedb88320
CRC32 查表法代码检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因而,在数据...
计算字符串或文件的Crc32代码,提供标准的API,适应各语言开发的系统中调用,且与JAVA自身(import java.util.zip.CRC32)的CRC32算法计算结果相同。 // 获取计算字符Crc32代码 // 以10进制返回Crc32代码 CRC32_API ...
CRC32校验算法 C#,文件流传输校验算法
ORACLE crc3函数,将字符类型转换成唯一的数字类型,例如CSDN,经过crc32函数转换后,得到的值为-1016176976
用java 编写实现的CRC32算法,很详细