原文章鏈接為:PHP的加密偽隨機數(shù)生成器的使用 文中對于 random_bytes() 函數(shù)的描述有誤。Github原始文檔已修改為: var_dump(bin2hex(random_bytes(5))); // string(10) "f28dc2bdd5" var_dump(random_bytes(5)); // string(5) "?"??" random_bytes() 每次調(diào)用都會生成不同內(nèi)容的二進制字符串,而參數(shù)則是二進制的字節(jié)長度。直接獲取到的二進制數(shù)據(jù)是亂碼格式的,所以一般我們會需要使用 bin2hex() 來將二進制轉(zhuǎn)換成我們可以看懂的十六進制格式字符串。不過由此帶來的結(jié)果就是我們轉(zhuǎn)換之后的十六進制的字符長度是我們設(shè)定的字符長度的 2 倍。這個函數(shù)的作用,可以為我們生成安全的用戶密碼 salt 、 密鑰關(guān)鍵字 或者 初始化向量。 原錯誤內(nèi)容:random_bytes() 每次調(diào)用都會生成不同內(nèi)容的字符串,而參數(shù)則是字符長度的隨機字符,在這里我們傳遞的是 5 ,返回了 10 個字符,可以看出這個參數(shù)是字符數(shù)量,而返回的其實是字節(jié)數(shù)量,對應(yīng)一個字符占用兩個字節(jié)的返回形式?;蛘呶覀兙椭苯佑涀∷祷氐木褪菂?shù)的兩倍即可。至于這個函數(shù)的作用嘛,可以為我們生成安全的用戶密碼 salt 、 密鑰關(guān)鍵字 或者 初始化向量。 Github原文鏈接: https://github.com/zhangyue0503/dev-blog/blob/master/php/202007/PHP的加密偽隨機數(shù)生成器的使用.md |
|
來自: 硬核項目經(jīng)理 > 《待分類》