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随机生成唯一HASH值自定义函数就介绍到这了。青春是一滩水,无论是摊开还是紧握,都无法从指缝中淌过单薄的年华。更多相关PHP随机生成唯一HASH值自定义函数内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
thinkphp5.1 中使用自定义异常处理类进行接管

php自定义排序uasort函数示例【二维数组按指定键值排序】

Yii2框架自定义类统一处理url操作示例

Laravel Validator自定义错误返回提示消息并在前端展示

php实现微信公众号创建自定义菜单功能的实例代码