php生成游客id_PHP生成唯一ID 公认较为安全的写法 上传随机文件名
PHP生成随机文件名有多种方式,本次介绍一个在公认比较新、比较安全的随机ID函数。较老的方式一般单一使用rand函数生成随机数字,或者用md5,或者进一步使用uniqid()函数,但不论以上哪种方式,都存在可能重复的问题。我查阅了国外技术论坛,总结了一个名为unique_ID的函数,采用了目前公认较为安全、不容易出现重复的写法,优先使用random_bytes函数、openssl_random_pseudo_byte函数进行随机字符生成。
此函数可以用在各类需要生成唯一ID的场景中,一个非常普遍的场景就是上传图片名。
/**
* unique_ID
* 生成16位以上唯一ID
*
* @author Aspirant Zhang
* @param int $length 不含前缀的长度,最小16,建议20+
* @param str $prefix 前缀
* @return str $id
*/
function unique_ID($length = 16,$prefix = ''){
$id = $prefix;
$addLength = $length - 13;
$id .= uniqid();
if (function_exists('random_bytes')) {
$id .= substr(bin2hex(random_bytes(ceil(($addLength) / 2))),0,$addLength);
} elseif (function_exists('openssl_random_pseudo_bytes')) {
$id .= substr(bin2hex(openssl_random_pseudo_bytes(ceil($addLength / 2))),0,$addLength);
} else {
$id .= mt_rand(1*pow(10,($addLength)),9*pow(10,($addLength)));
}
return $id;
}
php生成游客id_PHP生成唯一ID 公认较为安全的写法 上传随机文件名相关推荐
- php生成游客id_PHP根据用户ID生成唯一的邀请码 | 剑花烟雨江南
在开发中,我们可能会遇到需要生成用户唯一的邀请码,来做一些邀请活动,接下来,我们思考如何生成唯一的邀请码,且可以根据邀请码获取到用户id. 首先,我们可以考虑使用用户user_id 来生成邀请码,并生 ...
- 雪花算法及运用PHP,雪花算法生成全局唯一ID,参考了下网上雪花算法生成规则,机器ID和序列号自动获取 理论上毫秒可生成 1024*4096个唯一ID
任务要求毫秒生成10000个唯一ID 研究了下twitter/snowflake的算法思想: 参考了下网上雪花算法生成规则,把数据中心和机器编号整合一起,变成10位机器ID, 机器ID和序列号自动获取 ...
- java0到9的字符怎么表示_java,_java 怎么生成一个0-9,a-z的一个44位字符串作为上传文件的名字,java - phpStudy...
java 怎么生成一个0-9,a-z的一个44位字符串作为上传文件的名字 找到一个时间MD5加密的 package org.blog.controller; import java.io.File; ...
- Python 基于Python生成短8位唯一id解决方案
利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62(字符0-9,a-z,A-Z总数量62个字符)操作,结果作为索引取出字符 ...
- mysql 分布式 生成序号_分布式唯一ID生成方案
唯一ID在业务系统中经常用到,例如数据库的唯一主键,那么唯一ID如何生成,我们这里介绍一些常见的实现方案. 字符串ID 如果采用字符串id,那么很简单,直接使用jdk自带的UUID,原始生成的是带中划 ...
- android唯一机器码生成方案_分布式系统唯一ID生成方案汇总
系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结.生成ID的方法有很多,适应不同的场景.需求以及性能要求.所以有些比较复杂的系统会有多个ID生成的策略.下面就介绍一些常见 ...
- mysql 1100_mysql数据库选择,有1100个用户,每个用户每月生成一张表,使用中该表内每秒上传一条数据,数据量很大...
mysql数据库,有1100个用户,每个用户每月生成一张表,用户登录在该表内每秒上传一条数据,预计每张表一个月共86W条数据,现在我搭建了mysql-cluster环境2个NDBD节点配置为8核CPU ...
- 雪花算法生成数字id_全局唯一iD的生成 雪花算法详解及其他用法
SnowflakeIdWorker { // ==============================Fields========================================= ...
- Java 生成订单号(唯一id)方案
1.直接使用uuid public static String getUUID() {String replaceUUID = UUID.randomUUID().toString().replace ...
最新文章
- python项目部署到docker_使用docker 部署python 项目
- Oracle数据库导入导出 imp/exp备份还原
- java里面数字四舍五入,Java数字的四舍五入
- 学习笔记:pscc2020基础
- rest syntax(parameters)
- ENVI入门系列教程---二、图像分析---12. 图像分类流程化工具
- java a标签实现文件下载_a标签实现文件下载 避免直接打开问题
- CMOS Image Sensor的DVP接口硬件设计
- linux yum换源(国内阿里源)
- termux搭建局域网web服务器
- 中国的程序员大部分都是diao丝,说白了就是农村进城打工的,有背景或有钱的基本都不会做程序员。
- Python 数据科学入门教程:Pandas
- opencv 阈值处理(python)
- python读excel表_怎么用python读取excel表格的数据
- matlab中floor函数,Matlab基本函数-floor函数
- 计算机在通风网络中的应用,普适计算在煤矿通风网络解算中的应用研究
- 服务改进还是先从自己改起吧
- input的23种type类型
- mysql where not in_mysql查询条件not in 和 in的区别及原因说明
- Basler Blaze-101开发实践(1)——实时采图
热门文章
- hpux 11.11 连接HDS 存储,采用HDLM管理带来的麻烦,需重启。
- android广播代码汇总二__有序广播
- android自定义View学习(二)----自定义绘图
- 基于JAVA+SpringMVC+Mybatis+MYSQL的相声购票系统
- Git应用之eclipse解决冲突代码
- Hystrix是如何工作的
- Ubuntu14.04中踩过的坑
- 这几天的学习进度总结
- [转] Linux C语言 段错误bug的调试
- SPSS数据分析之列联分析与卡方检验、方差分析与LSD方法【操作详解】