国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP 中的 == 和“隱式轉(zhuǎn)換”

tuniutech / 3207人閱讀

摘要:在比較兩個(gè)字符串,無(wú)論它們是否相等,函數(shù)的時(shí)間消耗是恒定的,可以用來(lái)防止時(shí)序攻擊。

引言

最近,在 Hacker News 上有一篇帖子(https://news.ycombinator.com/item?id=9484757),提到了一種探測(cè)網(wǎng)站密碼加密方式的方法。



結(jié)果都是:

bool(true)
bool(true)
bool(true)

如果在一個(gè)網(wǎng)站,使用240610708作為密碼,然后用QNKCDZO登陸,結(jié)果可以登錄的話,說(shuō)明密碼是以MD5方式保存的。類似的,如果用aaroZmOk作為密碼,然后用aaK1STfY登陸,結(jié)果可以登錄的話,說(shuō)明密碼是以sha1方式保存的。第三種當(dāng)然就是明文存儲(chǔ)了。

分析

以第一組數(shù)為例:

md5("240610708") 的結(jié)果是:0e462097431906509019562988736854
md5("QNKCDZO") 的結(jié)果是:0e830400451993494058024219903391

由于 PHP 是弱類型語(yǔ)言,在使用 == 號(hào)時(shí),如果比較一個(gè)數(shù)字和字符串或者比較涉及到數(shù)字內(nèi)容的字符串,則字符串會(huì)被轉(zhuǎn)換為數(shù)值并且比較按照數(shù)值來(lái)進(jìn)行。此規(guī)則也適用于 switch 語(yǔ)句。上述例子中的兩個(gè)字符串恰好以 0e 的科學(xué)記數(shù)法開頭,字符串被隱式轉(zhuǎn)換為浮點(diǎn)數(shù),實(shí)際上也就等效于 0×10^0 ,因此比較起來(lái)是相等的。

類似


第一個(gè)返回的是 true,第二個(gè)返回的是 false

結(jié)論

PHP中的Hash校驗(yàn),應(yīng)該使用“===”,而不應(yīng)該使用“==”。另外如果生產(chǎn)環(huán)境版本足夠高的話(PHP >= 5.6.0),最好使用 hash_equals() 函數(shù)。

hash_equals() 在比較兩個(gè)字符串,無(wú)論它們是否相等,函數(shù)的時(shí)間消耗是恒定的,可以用來(lái)防止時(shí)序攻擊。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/30246.html

相關(guān)文章

  • 后端知識(shí)點(diǎn)總結(jié)——PHP

    摘要:后端知識(shí)點(diǎn)總結(jié)服務(wù)器服務(wù)器的作用接收客戶端的請(qǐng)求,查找需要的數(shù)據(jù)文件數(shù)據(jù)庫(kù)其它系統(tǒng),發(fā)送回客戶端。注意默認(rèn)情況下,若判定了某個(gè)相等條件則執(zhí)行該條件以及后續(xù)所有條件中的執(zhí)行語(yǔ)句必須配合關(guān)鍵字使用。 后端知識(shí)點(diǎn)總結(jié)——PHP 1.Web服務(wù)器 Web服務(wù)器的作用:接收客戶端(PC/PAD/PHONE)的請(qǐng)求,查找需要的數(shù)據(jù)(文件/數(shù)據(jù)庫(kù)/其它系統(tǒng)),發(fā)送回客戶端。 Web服務(wù)器分為兩種:...

    Astrian 評(píng)論0 收藏0
  • 后端知識(shí)點(diǎn)總結(jié)——PHP

    摘要:后端知識(shí)點(diǎn)總結(jié)服務(wù)器服務(wù)器的作用接收客戶端的請(qǐng)求,查找需要的數(shù)據(jù)文件數(shù)據(jù)庫(kù)其它系統(tǒng),發(fā)送回客戶端。注意默認(rèn)情況下,若判定了某個(gè)相等條件則執(zhí)行該條件以及后續(xù)所有條件中的執(zhí)行語(yǔ)句必須配合關(guān)鍵字使用。 后端知識(shí)點(diǎn)總結(jié)——PHP 1.Web服務(wù)器 Web服務(wù)器的作用:接收客戶端(PC/PAD/PHONE)的請(qǐng)求,查找需要的數(shù)據(jù)(文件/數(shù)據(jù)庫(kù)/其它系統(tǒng)),發(fā)送回客戶端。 Web服務(wù)器分為兩種:...

    Allen 評(píng)論0 收藏0
  • 解析JavaScript判斷兩個(gè)值相等的方法

      本篇文章主要是講述在JavaScript中判斷兩個(gè)值相等,不要認(rèn)為很簡(jiǎn)單,要注意的是在JavaScript中存在4種不同的相等邏輯。  ECMAScript 是 JavaScript 的語(yǔ)言規(guī)范,在ECMAScript 規(guī)范中存在四種相等算法,如下圖所示:  上圖中每個(gè)依次寫下來(lái),很多前端應(yīng)該熟悉嚴(yán)格相等和非嚴(yán)格相等,但對(duì)于同值零和同值卻不熟悉,現(xiàn)在就依次下面四種方法。  同值  同值零  非...

    3403771864 評(píng)論0 收藏0
  • JavaScript 中的隱式類型轉(zhuǎn)換

    摘要:雖然你可能很驚訝甚至可能懷疑是的但是這都是有語(yǔ)言自己的一個(gè)隱式類型轉(zhuǎn)換的套路。基本的隱式類型轉(zhuǎn)換基本類型的隱式轉(zhuǎn)換這個(gè)其實(shí)我們使用的最多例如結(jié)果返回的是而不是這就是類型的隱式轉(zhuǎn)換。 基本上所有的語(yǔ)言都有 隱式類型轉(zhuǎn)換 ,但是對(duì)于 弱類型語(yǔ)言(JS) 來(lái)說(shuō) ,隱式類型轉(zhuǎn)換會(huì)比 強(qiáng)類型語(yǔ)言(Java) 帶來(lái)更大的副作用,有些行為甚至是不可思議的。雖然你可能很驚訝 ,甚至可能懷疑是 JS 的...

    txgcwm 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<