1
timonwong 2014-04-24 16:24:12 +08:00 1
是
|
2
timothyqiu 2014-04-24 16:26:14 +08:00 2
哈希是把 任意长度数据 往 固定长度数据 上的一种映射。
所以 CRC-32 算哈希算法。 不过,理论上 return 0 也是一种哈希算法,只不过永远碰撞而已。 |
3
lococo OP 刚刚论文导师说我的论文太水,没看懂我的算法,把我骂一顿
第一句话就是说: P14 crc-32 不是哈希函数!! 我还以为真是我错了 `` |
4
nicai000 2014-04-24 16:33:03 +08:00
算, 你老师略弱. "弱版的MD5"这句话说得也略弱.
|
5
Keyes 2014-04-24 16:33:54 +08:00
CRC32是一个妥妥的标准哈希算法,整个CRC系列都是为这目的而诞生的,你导师如此卖萌……
|
6
Keyes 2014-04-24 16:35:06 +08:00 1
你可以去维基摘一些CRC的公式给他……
|
7
lococo OP 我刚刚把这个帖子的链接贴给导师了 ``
导师说我如果在论文里写CRC-32是一种哈希算法的话这点就通不过检查的 |
8
raptium 2014-04-24 16:51:14 +08:00
http://en.wikipedia.org/wiki/Cryptographic_hash_function
http://en.wikipedia.org/wiki/Hash_function 你导师把这两个搞混了 CRC32 是 Hash Function,不过对碰撞就没啥抵抗了 |
9
lococo OP 好伤心
那我还是把我论文里的所有这样写的语句改成 恩`` 循环冗余校验算法!! |
10
raptium 2014-04-24 16:52:23 +08:00
事实上简单的 Hash Function 可以是 f(x) = x mod n
在写 hash map 的时候这样就够用了 |
11
xdeng 2014-04-24 16:57:04 +08:00
碰撞率 比 MD5高吧?
|
15
lococo OP |
17
Keyes 2014-04-24 17:43:26 +08:00
其实用于少量数据的完整性校验,并不需要MD5等算法上场
另外“碰撞”也只是f(data1) == f(data2)而已; 但如果是我有数据篡改的目的,那我的目的一定是: 要根据a1的数据进行篡改得到a2,且hash(a1)==hash(a2),且a2要具有实际意义,要保持原有数据结构的长度限制; 反正我是做不到……要得出长度一样、哈希结果一样,但内容不一样的两组数据,我相信即使CRC32也没有那么容易就做出来的 半吊子一个……不知道各位能看懂不……求做算法的大神出面详解 |
18
min 2014-04-24 17:44:09 +08:00
验证效率方面,好像有些hash算法是针对性能优化的,可以找来参考参考
|
20
nicai000 2014-04-24 17:46:47 +08:00
你竟然把这帖子发给导师, 也真够直的...
|
21
lococo OP 导师现在已经懒得理我了··
|
23
zinking 2014-04-24 18:18:20 +08:00
我觉得要看你讨论的上下文, 如果上下文里哈希算法指的是用在Map之类数据结构上的话, 我不觉得CRC是哈希算法。 CRC就是通常意义的校验算法而已。 没必要把什么东西都往抽象高层发散。 就像前面同学说的return 0还是哈希算法呢
|
24
quake0day 2014-04-24 22:50:20 +08:00 1
如果检查的人有机会听你辩驳的话你就这么写。如果你没机会申辩的话,那最好还是改成他们容易懂的表述。
|
26
undeadking 2014-04-25 13:41:01 +08:00
hash算法和可用于加密学的安全hash算法是两回事,一般信息安全的课本都会有详细的定义说明啊
|
27
lococo OP @undeadking
最开始导师给我问题背景假设的时候就在说用hash去确保原始数据完整性… |