日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php中的rand,预测PHP的rand()的输出

發布時間:2025/4/5 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php中的rand,预测PHP的rand()的输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從中猜測下一個值的rand能力與確定所srand調用內容的能力有關。特別是,以預定數量播種會srand導致可預測的輸出!在PHP交互式提示符下:

[charles@charles-workstation ~]$ php -a

Interactive shell

php > srand(1024);

php > echo rand(1, 100);

97

php > echo rand(1, 100);

97

php > echo rand(1, 100);

39

php > echo rand(1, 100);

77

php > echo rand(1, 100);

93

php > srand(1024);

php > echo rand(1, 100);

97

php > echo rand(1, 100);

97

php > echo rand(1, 100);

39

php > echo rand(1, 100);

77

php > echo rand(1, 100);

93

php >

這不僅僅是fl幸。大多數PHP版本*在大多數平臺**會生成序列97,97,39,77,93時,srand“d與1024。

要明確的是,這不是PHP的問題,這是其rand自身實現的問題。在使用相同(或相似)實現的其他語言(包括Perl)中也會出現相同的問題。

訣竅是,任何理智的PHP版本都將預先植入srand“未知”值。哦,但這并不是真正未知的。來自ext/standard/php_rand.h:

#defineGENERATE_SEED()(((long)(time(0)*getpid()))^((long)(1000000.0*php_combined_lcg(TSRMLS_C))))

因此,這是一個數學運算符time(),其中包含PID以及PID的結果php_combined_lcg,它們在中定義ext/standard/lcg.c。我不會在這里進行c&p,因為,我的眼睛發呆,所以我決定停止狩獵。

有點谷歌搜索表明PHP的其他區域沒有最好的隨機性生成屬性,并呼吁在php_combined_lcg這里脫穎而出,尤其是以下分析:

此函數(gettimeofday)不僅使我們在銀盤上獲得了精確的服務器時間戳,而且如果我們要求“更多熵”(來自PHP uniqid),它還會添加LCG輸出。

是啊是uniqid。似乎值php_combined_lcg是在調用uniqid第二個參數設置為真值后查看生成的十六進制數字時所看到的。

現在,我們在哪里?

哦是的 srand。

因此,如果您嘗試從中預測隨機值的代碼沒有調用srand,則需要確定由提供的值php_combined_lcg,您可以通過調用來(間接獲得)該值uniqid。根據手中的價值,這是可行的,以蠻力價值的休息- time(),PID和一些數學。鏈接的安全性問題是關于中斷會話的,但是相同的技術在這里也適用。再次,從文章:

這是上面概述的攻擊步驟的摘要:

等待服務器重啟

獲取唯一值

蠻力從此RNG種子

輪詢在線狀態以等待目標出現

將狀態輪詢與uniqid輪詢交錯,以跟蹤當前服務器時間和RNG值

使用輪詢中建立的時間和RNG值間隔對服務器進行暴力會話ID

只需根據需要替換最后一步。

(此安全問題是在比我們當前的版本(5.3.6)更早的PHP版本(5.3.2)中報告的,因此,uniqid和/或php_combined_lcg已更改的行為很可能,因此該特定技術可能不再可行。 YMMV。)

另一方面,如果您要嘗試人工生成的代碼調用srand,那么除非它們使用的結果比的結果好很多倍,否則php_combined_lcg您可能會更容易地猜測出值并為本地設置種子編號正確的發電機。大多數會手動調用的人srand也不會意識到這是多么可怕的想法,因此不太可能使用更好的價值。

值得注意的是,mt_rand同樣的問題也困擾著它。mt_srand具有已知值的播種也會產生可預測的結果。基于您的熵openssl_random_pseudo_bytes可能是一個更安全的選擇。

tl; dr:為了獲得最佳結果,請不要植入PHP隨機數生成器,并且出于良善起見,請不要uniqid向用戶公開。兩者之一或兩者都做可能會使您的隨機數更容易猜測。

PHP 7更新:

PHP 7.0引入random_bytes和random_int作為核心功能。他們使用基礎系統的CSPRNG實現,從而使它們擺脫了種子隨機數生成器所具有的問題。它們實際上與相似openssl_random_pseudo_bytes,只是不需要安裝擴展程序。 Polyfill可用于PHP5。

*:Suhosin安全補丁會更改的行為,rand并mt_rand始終在每次調用時重新植入種子。Suhosin由第三方提供。默認情況下,某些Linux發行版將其包含在其官方PHP軟件包中,而其他發行版則將其作為選項,而其他發行版則完全忽略了它。

**:根據所使用的平臺和底層庫調用,將生成與此處記錄的序列不同的序列,但是除非使用Suhosin補丁,否則結果應仍可重復。

總結

以上是生活随笔為你收集整理的php中的rand,预测PHP的rand()的输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲熟妇国产熟妇肥婆 | 亚洲天天| 台湾黄色网址 | 91久久中文字幕 | 波多野吉衣在线视频 | 亚洲九九热 | 久久九九免费 | 国产视频精品自拍 | 亚洲精品国产乱伦 | 在线免费成人 | 日韩怡红院 | 精品国产视频一区二区三区 | 午夜国产在线观看 | 波多野一区二区 | 亚洲桃色av | 都市激情久久 | 日本少妇高潮 | 一级理论片 | 国产人妻人伦精品1国产盗摄 | 毛片无限看 | 欧美视频在线不卡 | 欧美永久免费 | 99操| 偷偷操网站 | 男人久久| 日本裸体动漫 | 欧美伦理一区二区三区 | 欧美夫妻性生活视频 | av在线免 | 欧美一区亚洲 | 五月涩 | 狠狠干一区二区 | 最近高清中文在线字幕在线观看 | 亚洲精品小视频在线观看 | www.色婷婷.com| 搡老熟女老女人一区二区 | 欧洲a级片 | 毛片88| 秘密基地动漫在线观看免费 | 污导航在线观看 | 爱的色放韩国电影 | 久久99这里只有精品 | 久草电影在线 | 韩国三级黄色 | 丝袜调教91porn | 一级黄色影院 | 国产免费av网站 | 日本女人毛片 | 亚洲天堂2013 | a级片免费在线观看 | 妺妺窝人体色www在线下载 | 成人xx视频 | 中文字幕有码无码人妻av蜜桃 | 国产看真人毛片爱做a片 | 精品免费在线观看 | 97人妻精品一区二区三区软件 | 深夜视频一区二区三区 | 亚洲欧美日韩国产一区 | 国产chinese中国hdxxxx | 免费午夜av | 搞黄视频在线观看 | 免费人成在线观看网站 | 亚洲精品播放 | 久久99精品久久只有精品 | 欧美一区二区视频 | 男女午夜影院 | 中国国产精品 | 欧美成人黄色小说 | 免费观看nba乐趣影院 | 欧美综合精品 | 黄色视屏在线看 | 一本一道久久a久久 | 午夜av福利 | 少妇人妻一区二区 | 先锋影音av在线资源 | 国产主播在线播放 | 欧洲a级片| 日日人人| 丰满人妻一区二区三区免费视频棣 | 亚洲国产精品18久久久久久 | 国产xxxx在线观看 | 精品人妻一区二区三区四区五区 | 欧美日韩一区三区 | 蜜桃成人无码区免费视频网站 | 亚洲一区二区三区久久久 | 亚洲18在线看污www麻豆 | 亚洲一区二区久久 | a级片在线免费看 | 长河落日 | 国产区在线观看视频 | 亚洲精品一区二区口爆 | 污片视频在线观看 | 亚洲免费色 | 天天看片天天操 | 伊人久久青青草 | 亚洲美女毛片 | 成年网站在线播放 | 女人的天堂网站 | 美女被男人c |