V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kenneth
V2EX  ›  程序员

怎么得到一个纯数字的哈希?

  •  
  •   kenneth · 2013-06-04 17:31:30 +08:00 · 4984 次点击
    这是一个创建于 4194 天前的主题,其中的信息可能已经有所发展或是发生改变。
    算法是怎样的?不喜欢md5,因为都字母,想要一个纯数字的有木有。
    15 条回复    1970-01-01 08:00:00 +08:00
    RoyLaw
        1
    RoyLaw  
       2013-06-04 17:33:49 +08:00
    拿十进制表示不就是纯数字了么...
    swulling
        2
    swulling  
       2013-06-04 17:46:26 +08:00
    md5输出结果是128-bit的数字啊。。。
    aisk
        3
    aisk  
       2013-06-04 17:47:33 +08:00
    直接拿这数字表示就可以,python就是这么干的
    kenneth
        4
    kenneth  
    OP
       2013-06-04 17:54:02 +08:00
    @RoyLaw
    @swulling
    @aisk

    能否show me your code in python
    gonghao
        5
    gonghao  
       2013-06-04 17:58:19 +08:00
    int(md5.md5('foo').hexdigest(), 16)
    aisk
        6
    aisk  
       2013-06-04 18:06:04 +08:00
    In [8]: hash(1)
    Out[8]: 1
    aisk
        7
    aisk  
       2013-06-04 18:07:52 +08:00
    @aisk 哦我理解错了,一开始理解的是“如何得到一个 数字 的哈希值”,楼主想要的是任意值的哈希结果,结果是纯数字
    kenneth
        8
    kenneth  
    OP
       2013-06-04 18:13:37 +08:00
    @aisk 对的,你明白了。
    @gonghao 整形长度能任意?碰撞概率大概是怎样,就是容易不容易出现重复。
    gonghao
        9
    gonghao  
       2013-06-04 18:16:15 +08:00
    @kenneth int 是从 hexdigest 里面转换的,碰撞概率不在 int 上,在 md5 上
    kenneth
        10
    kenneth  
    OP
       2013-06-04 18:23:57 +08:00
    @gonghao 我能否控制这个int的长度?
    yangzh
        11
    yangzh  
       2013-06-04 19:31:27 +08:00   ❤️ 1
    md5 就是一串数。把16进制转换成10进制就可。当然对这是一个很大的数。要对位数的空间比较大。

    另外可参照 http://segmentfault.com/q/1010000000142006
    Sunyanzi
        12
    Sunyanzi  
       2013-06-04 19:33:44 +08:00
    @yangzh .... 我刚想来自己王婆卖瓜一下 ... 就发现了楼上的回复 ...

    恩 ... 谢谢 ...
    plprapper
        13
    plprapper  
       2013-06-04 22:16:32 +08:00
    对md5的值做一些处理 比如转成byte数组,然后进行一些^运算,最后做一些<< 拼成个long
    kenneth
        14
    kenneth  
    OP
       2013-06-04 22:18:57 +08:00
    @Sunyanzi
    @yangzh

    高手能否给出代码?最好python的
    如何得到 http://segmentfault.com/q/1010000000142006
    中的1010000000142006
    clowwindy
        15
    clowwindy  
       2013-06-05 10:46:48 +08:00 via iPhone
    hash("foobar")
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5453 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 591ms · UTC 07:31 · PVG 15:31 · LAX 23:31 · JFK 02:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.