PHP隨機(jī)生成唯一HASH值自定義函數(shù)
網(wǎng)上有很多種方法獲取隨機(jī)唯一的HASH值,但是大同小異:
1、先獲取隨機(jī)的唯一字符串
2、進(jìn)行MD5或者sha1算HASH值
一個(gè)項(xiàng)目要用到hash值,就去網(wǎng)上找了找,卻發(fā)現(xiàn)PHP有一個(gè)函數(shù)能直接生成唯一字符串——uniqid(),通過(guò)使用這個(gè)函數(shù),再加上自己生成的隨機(jī)數(shù)(防止被破解),更具有唯一性且不易被猜解。主要考慮問(wèn)題如下:
1、隨機(jī)的效率與隨機(jī)性:rand和mt_rand函數(shù)的選擇,首選mt_rand,效率高,隨機(jī)性好;
2、隨機(jī)次數(shù):選擇5次,本來(lái)unniqid就是唯一的,加上隨機(jī)的可以只是增強(qiáng)安全性,5次足矣
3、md5還是sha1:都能生成唯一的hash值,sha1占用資源可能高點(diǎn),但是微乎其微,如果考慮數(shù)據(jù)庫(kù)存儲(chǔ)的小寫(xiě),可以使用md5(32位長(zhǎng)度)
<?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; // 類(lèi)似 5443e09c27bf4aB4uT return sha1($content); } echo get_hash(); ?>
- 使用PHP uniqid函數(shù)生成唯一ID
- PHP之uniqid()函數(shù)用法
- PHP實(shí)現(xiàn)會(huì)員賬號(hào)單唯一登錄的方法分析
- PHP實(shí)現(xiàn)的生成唯一RequestID類(lèi)完整示例
- 完美解決thinkphp唯一索引重復(fù)時(shí)出錯(cuò)的問(wèn)題
- PHP生成唯一ID之SnowFlake算法
- 3種php生成唯一id的方法
- PHP實(shí)現(xiàn)生成唯一會(huì)員卡號(hào)
- PHP生成唯一訂單號(hào)
- PHP生成唯一訂單號(hào)的方法匯總
- 高并發(fā)php uniqid不重復(fù)唯一標(biāo)識(shí)符生成方案
相關(guān)文章
php實(shí)現(xiàn)的美國(guó)50個(gè)州選擇列表實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的美國(guó)50個(gè)州選擇列表實(shí)例,可實(shí)現(xiàn)讓當(dāng)前州為選中狀態(tài)的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04PHP使用三種方法實(shí)現(xiàn)數(shù)據(jù)采集
這篇文章主要介紹了PHP使用三種方法實(shí)現(xiàn)數(shù)據(jù)采集,對(duì)數(shù)據(jù)采集感興趣的同學(xué),可以參考下2021-04-04微信公眾平臺(tái)接口開(kāi)發(fā)入門(mén)示例
這篇文章主要介紹了微信公眾平臺(tái)接口開(kāi)發(fā)入門(mén)示例,較為簡(jiǎn)單透徹的分析了微信公眾平臺(tái)接口開(kāi)發(fā)的技巧與具體方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12ThinkPHP中實(shí)例Model方法的區(qū)別說(shuō)明
在TP中,我們對(duì)數(shù)據(jù)庫(kù)操作時(shí)多數(shù)都是用TP提供的model去先創(chuàng)建一個(gè)表的映射實(shí)例,然后在對(duì)數(shù)據(jù)進(jìn)行處理,但是不同的創(chuàng)建方法對(duì)數(shù)據(jù)的處理和信息的返回卻有所不同。2010-08-08php的XML文件解釋類(lèi)應(yīng)用實(shí)例
這篇文章主要介紹了php的XML文件解釋類(lèi)及其應(yīng)用實(shí)例,包括針對(duì)XML文件的讀取、解釋、檢查及輸出等功能,非常實(shí)用,需要的朋友可以參考下2014-09-09