golang crc32 和 php crc32

allenhaozi · 2017-02-09 13:14:57 · 4535 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-02-09 13:14:57 的主题,其中的信息可能已经有所发展或是发生改变。

php crc32(string) go crc32.ChecksumIEEE([]byte(string))

同一个string 结果不一致, 在一台服务器上运行

有遇到的吗


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4535 次点击  
加入收藏 微博
4 回复  |  直到 2017-02-10 08:18:53
alex_023
alex_023 · #1 · 8年之前

测试了一下,没有发现你的问题存在呢。

php代码:

$crc = crc32('10f86782177490f2ac970b8dc4c51014');
var_dump($crc);
//output:
//int(3343783641)

golang代码:

    fmt.Println(crc32.ChecksumIEEE([]byte("10f86782177490f2ac970b8dc4c51014")))
//output:
//3343783641

不知道是不是我理解错了?

663280439
663280439 · #2 · 8年之前

楼主你是在32位操作系统上做的测试吧?

allenhaozi
allenhaozi · #3 · 8年之前
alex_023alex_023 #1 回复

测试了一下,没有发现你的问题存在呢。 php代码: ```php $crc = crc32('10f86782177490f2ac970b8dc4c51014'); var_dump($crc); //output: //int(3343783641) ``` golang代码: ```go fmt.Println(crc32.ChecksumIEEE([]byte("10f86782177490f2ac970b8dc4c51014"))) //output: //3343783641 ``` 不知道是不是我理解错了?

谢谢, 理解是对的 我的代码: id := "testplaintext"
hash := md5.New() io.WriteString(hash,id) data := hash.Sum(nil) crc := crc32.ChecksumIEEE(data)

发现计算出的数据不一致

看了你的代码改成: tmp := hex.EncodeToString(data) crc := crc32.ChecksumIEEE([]byte(tmp))

问题解决了

allenhaozi
allenhaozi · #4 · 8年之前
663280439663280439 #2 回复

楼主你是在32位操作系统上做的测试吧?

64的

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传