开发者社区> 问答> 正文

请问PHP如何把字符串hash成10进制数字?

md5这种方法都是哈希成一个字符+数字的字符串,但是现在我需要把一个字符串哈希成10进制数字,有没有什么算法可以实现的,或者可以吧md5的结果转换成10进制的

展开
收起
落地花开啦 2016-06-12 17:32:52 2853 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    一般情况而言需要做字符串到十进制数字的转换可以用 crc32() 函数 ...

    这个函数的优点是快 ... 在我的知识范围内这应该是 php 内置最快的哈希函数 ...

    缺点是操作系统依赖 ... 不同操作系统的 crc32() 函数会产生不一样的值 ...

    至于把 md5() 的结果转化成十进制 ... 用 hexdec() 显然是不靠谱的 ... 原因如楼上所说不赘述 ...

    这里我们用到另外一个更加灵活的进制转换函数 base_convert() ...

    这个函数的好处是返回 string ... 也就不存在溢出的问题了 ...

    示例代码如下 ...

    <?php
    echo base_convert( md5( 'something' ), 16, 10 );
    
    // 89699910832403552662426604448206446062
    2019-07-17 19:34:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载