用php生成Session ID 和隨機密碼

2021-08-30 01:32:55 字數 1167 閱讀 4889

當我們要辨識**的一位使用者,以提供給他在應用中獨有的使用體驗,這時候我們需要乙個session id,這個id是獨一無二的.

另外一些情況下我們也需要給使用者產生乙個獨一無二的令牌,比如使用者註冊的時候我們發給他確認郵件的時候,提供乙個令牌讓他用來驗證。這些令牌的產生和session id是類似的

下面我們就來看一下怎麼樣生成這樣的令牌,然後我們再看怎麼生成隨機密碼

[b]生成令牌[/b]

下面的gentoken()函式接受兩個引數,$len用於規定令牌的長度,$md5是個布林值,用於選擇是否使用md5。

function gentoken( $len = 32, $md5 = true ) ', '[', ']', 'h', ';', 'w', '.',

'/', '|', ':', '1', 'e', 'l', '4', '&', '6', '7', '#', '9', 'a',

'a', 'b', 'b', '~', 'c', 'd', '>', 'e', '2', 'f', 'p', 'g', ')',

'?', 'h', 'i', 'x', 'u', 'j', 'k', 'r', 'l', '3', 't', 'm', 'n',

'=', 'o', '+', 'p', 'f', 'q', '!', 'k', 'r', 's', 'c', 'm', 't',

'v', 'j', 'u', 'v', 'w', ',', 'x', 'i', '$', 'y', 'z', '*'

);# array indice friendly number of chars;

$numchars = count($chars) - 1; $token = '';

# create random token at the specified length

for ( $i=0; $i<$len; $i++ )

$token .= $chars[ mt_rand(0, $numchars) ];

# should token be run through md5?

if ( $md5 ) return $token;

}

下面我們來看生成隨機密碼

genpasswd()函式接受兩個引數,$len是密碼長度,$special讓你決定是否在密碼中包含特殊字元。

sessionId的生成過程和過期時間

瀏覽器第一次請求伺服器時,伺服器會生成乙個sessionid,並返回給瀏覽器,這個sessionid會被儲存在瀏覽器的會話cookie中。如下圖 在瀏覽器不關閉的情況下,之後的每次請求請求頭都會攜帶這個sessionid到伺服器。如下圖 在第二次請求3分鐘後我們進行第三次請求,這個時候伺服器中原有的...

用php生成pdf檔案

1 使用php生成pdf檔案 require once tcpdf.php 例項化 pdf new tcpdf p mm a4 true,utf 8 false 設定文件資訊 pdf setcreator helloweba pdf setauthor yueguangguang pdf setti...

用PHP生成PDF檔案及Label

最近在做的drupal平台的volunteer management system有個需求,是生成volunteer的named label,來列印成生日卡片。因為使用者在named label上面顯示的資訊不確定,所以最好利用現有的元件 如圖 根據搜尋結果來生成卡片。最初有想過直接生成網頁,並且有...