加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.cn/)- 基础存储、数据处理、视频终端、内容创作、网络安全!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-30 10:39:11 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP随机生成唯一HASH值自定义函数,本文先是给出了需求,然后给出了实现代码,需要的朋友可以参考下 网上有很多种方法获取随机唯一的HASH值,但是大同小异: 1、先获取随机的唯一字符串 2、进行MD5或者sha1算HASH值 一个项目要用到hash值,就
  这篇文章主要介绍了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();
  ?>

(编辑:阜新站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读