PHP随机生成唯一HASH值自定义函数

 更新时间:2015年04月20日 08:56:23   作者:Emc2  
这篇文章主要介绍了PHP随机生成唯一HASH值自定义函数,本文先是给出了需求,然后给出了实现代码,需要的朋友可以参考下

网上有很多种方法获取随机唯一的HASH值,但是大同小异:

1、先获取随机的唯一字符串
2、进行MD5或者sha1算HASH值

一个项目要用到hash值,就去网上找了找,却发现PHP有一个函数能直接生成唯一字符串——uniqid(),通过使用这个函数,再加上自己生成的随机数(防止被破解),更具有唯一性且不易被猜解。主要考虑问题如下:

1、随机的效率与随机性:rand和mt_rand函数的选择,首选mt_rand,效率高,随机性好;
2、随机次数:选择5次,本来unniqid就是唯一的,加上随机的可以只是增强安全性,5次足矣
3、md5还是sha1:都能生成唯一的hash值,sha1占用资源可能高点,但是微乎其微,如果考虑数据库存储的小写,可以使用md5(32位长度)

<?php
function get_hash(){
  $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-';
  $random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)];//Random 5 times
  $content = uniqid().$random;  // 类似 5443e09c27bf4aB4uT
  return sha1($content); 
}
echo get_hash();
?>

相关文章

  • 解析php中的escape函数

    解析php中的escape函数

    本篇文章是对php中的escape函数进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • ThinkPHP路由详解

    ThinkPHP路由详解

    ThinkPHP路由通俗的说,他是一个url的传输规则,例如:index.php?g=Home&m=Index&a=price 这个规则也是可以变化的,& 可以设置为@或者其他,规则主要有pathinfo等,在设置伪静态的时候也用的着他
    2015-07-07
  • php实现的美国50个州选择列表实例

    php实现的美国50个州选择列表实例

    这篇文章主要介绍了php实现的美国50个州选择列表实例,可实现让当前州为选中状态的功能,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • PHP分页效率终结版(推荐)

    PHP分页效率终结版(推荐)

    本篇文章是对PHP分页的实现进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • PHP使用三种方法实现数据采集

    PHP使用三种方法实现数据采集

    这篇文章主要介绍了PHP使用三种方法实现数据采集,对数据采集感兴趣的同学,可以参考下
    2021-04-04
  • php post换行的方法

    php post换行的方法

    在本篇文章里小编给大家整理了关于php post换行的方法以及实例内容,有需要的朋友们可以参考学习下。
    2020-02-02
  • php结合正则获取字符串中数字

    php结合正则获取字符串中数字

    这篇文章主要给大家汇总介绍了php结合正则获取字符串中数字的几种方法,十分的简单实用,有需要的小伙伴可以参考下。
    2015-06-06
  • 微信公众平台接口开发入门示例

    微信公众平台接口开发入门示例

    这篇文章主要介绍了微信公众平台接口开发入门示例,较为简单透彻的分析了微信公众平台接口开发的技巧与具体方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • ThinkPHP中实例Model方法的区别说明

    ThinkPHP中实例Model方法的区别说明

    在TP中,我们对数据库操作时多数都是用TP提供的model去先创建一个表的映射实例,然后在对数据进行处理,但是不同的创建方法对数据的处理和信息的返回却有所不同。
    2010-08-08
  • php的XML文件解释类应用实例

    php的XML文件解释类应用实例

    这篇文章主要介绍了php的XML文件解释类及其应用实例,包括针对XML文件的读取、解释、检查及输出等功能,非常实用,需要的朋友可以参考下
    2014-09-09

最新评论