PHP随机生成唯一HASH值自定义函数
2015-04-20 08:56
806 查看
网上有很多种方法获取随机唯一的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生成随机或者唯一字符串
- PHP如何随机生成一个唯一的id
- php生成随机唯一邀请码/优惠码 固定长度
- PHP 随机生成唯一的ID
- php生成随机唯一邀请码/优惠码 固定长度
- PHP 生成随机字符串与唯一字符串
- php生成随机唯一邀请码/优惠码 固定长度UUID
- 微信红包随机生成算法php版
- PHP随机生成国内ip地址
- 生成随机字符串和验证码的类的PHP实例
- PHP 生成唯一的激活码
- php 生成随机字符串
- 【验证码】PHP生成随机验证码
- php 生成唯一id的几种解决方法
- PHP生成随机水印图片
- php生成随机密码的几种方法
- php生成局部唯一识别码LUID的代码
- php生成局部唯一识别码LUID的代码
- PHP随机验证码生成
- PHP生成随机字符串的三种方法