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


Posted in PHP onApril 20, 2015

网上有很多种方法获取随机唯一的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 相关文章推荐
笑谈配置,使用Smarty技术
Jan 04 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
Destoon模板制作简明教程
Jun 20 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 PHP
php实现将HTML页面转换成word并且保存的方法
Oct 14 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
PHP使用new StdClass()创建空对象的方法分析
Jun 06 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 PHP
php隐藏实际地址的文件下载方法
Apr 18 #PHP
php实现用于计算执行时间的类实例
Apr 18 #PHP
php递归遍历多维数组的方法
Apr 18 #PHP
php实现二进制和文本相互转换的方法
Apr 18 #PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 #PHP
php准确计算复活节日期的方法
Apr 18 #PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
Apr 17 #PHP
You might like
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
PHP实现变色验证码实例
2014/01/06 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
python使用百度翻译进行中翻英示例
2014/04/14 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
python将数组n等分的实例
2019/12/02 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
Python多线程thread及模块使用实例
2020/04/28 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
护理学毕业生求职信
2013/11/14 职场文书
会计实习自我鉴定
2013/12/04 职场文书
人事主管岗位职责范本
2013/12/04 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书