新聞中心
PHP如何對用戶密碼進(jìn)行加密
PHP如何對用戶密碼進(jìn)行加密
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了青州免費(fèi)建站歡迎大家使用!
第一種方法:可以使用如下方法對用戶密碼進(jìn)行加密:MySqlSET user@”localhost” PASSWORD=PASSWORD(”Password”);
第二種方法:可以使用MYSQL的 PASSWORD函數(shù)進(jìn)行用戶密碼的加密。例如:Insert into user(password, ……..) values (PASSWORD(”$password”,………));
可以在一個PHP文件里面include另外一個PHP文件兩次嗎
是的,可以在一個PHP文件里面include另外一個PHP文件兩次,被include的那個php文件也會執(zhí)行兩次,所以如果在這個文件里面定義的有一個class, 就會報出the class already defined的錯誤。
mysql的最長數(shù)據(jù)庫名,表名,字段名可以是多長
數(shù)據(jù)庫名字最長為64
數(shù)據(jù)表名字最長為64
字段名字最長為64
mysql_pconnect()和mysql_connect()有什么區(qū)別
兩者的區(qū)別主要有兩個:
1. 在進(jìn)行數(shù)據(jù)庫連接時,函數(shù)會先找同一個host, 用戶和密碼的persistent(持續(xù)的)的'鏈接,如果能找到,則使用這個鏈接而不返回一個新的鏈接。
2. mysql_pconnect()創(chuàng)建的數(shù)據(jù)庫連接在腳本執(zhí)行完畢后仍然保留,可以被后來的代碼繼續(xù)使用,mysql_close()函數(shù)也不會關(guān)閉mysql_pconnect()創(chuàng)建的鏈接。
;
用php將密碼存入數(shù)據(jù)庫,用什么方法進(jìn)行加密?
題主你可以使用 md5 或者 sha1 進(jìn)行初步處理,但為了更加安全,請你同時加上兩個 salt,一個靜態(tài) salt,一個動態(tài)的 salt。以 md5 為例:\x0d\x0a假設(shè)通過 POST 傳來的密碼為 $_POST['password'],在存入 DB 前先進(jìn)行如下的操作:\x0d\x0a$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);\x0d\x0a\x0d\x0a為了保證動態(tài) salt 的唯一性,可以這樣操作:\x0d\x0a$dynamicSalt = hash('md5', microtime());\x0d\x0a\x0d\x0a對于動態(tài)的 salt 可以與生成的密碼一起保存在 DB 中,而靜態(tài) salt 則可以直接放在類文件中(例如定義為一個靜態(tài)屬性即可)。\x0d\x0a首先謝謝題主采納了我的答案,但是我之前的回答并不是最佳答案,之所以有此加密的想法源于自己所讀的源碼可能比較老,所以并沒使用上較新版本的加密方法,例如 bcrypt等。\x0d\x0a此外,第二點,感謝評論中幾位前輩的提點,已經(jīng)明白設(shè)置靜態(tài) salt 的意義并不大,生成一個較長的動態(tài) salt 已然可以解決問題。\x0d\x0a\x0d\x0aLZ應(yīng)該采用加鹽HASH。\x0d\x0a如何“腌制”密碼呢?\x0d\x0a=_,=\x0d\x0a正確的格式應(yīng)該是,用戶password+動態(tài)的salt\x0d\x0a動態(tài)的salt不能像2L所說的,使用microtime,因為時間在某些情況下不夠隨機(jī),而且是可能被猜解的。\x0d\x0a這里推薦一個我用的加鹽HASH\x0d\x0a$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));\x0d\x0a$password=sha1($register_password.$salt);\x0d\x0a\x0d\x0a解釋:\x0d\x0a首先使用mcrypt,產(chǎn)生電腦隨機(jī)生成的,專門用戶加密的隨機(jī)數(shù)函數(shù)。\x0d\x0a第二步,把得到的隨機(jī)數(shù)通過base64加密,使其變長并且不利于猜解。\x0d\x0a第三步,把得出的鹽拼接到密碼的后面,再對其使用sha1進(jìn)行哈希\x0d\x0a再把password存入到用戶的數(shù)據(jù)庫。\x0d\x0aPS:為何不用靜態(tài)的salt?沒有必要,使用一個動態(tài)隨機(jī)足夠長的鹽足矣。\x0d\x0a為何不用MD5?因為長度不夠。\x0d\x0a為何沒有使用多次HASH?因為這樣反而容易發(fā)生碰撞。\x0d\x0aHASH好之后怎么使用“腌制”好的密碼?\x0d\x0a用戶注冊-提交密碼-產(chǎn)生salt-腌制好的密碼存入數(shù)據(jù)庫-salt存入數(shù)據(jù)庫。\x0d\x0a用戶登錄-提交密碼-調(diào)用salt接到提交密碼的后面-進(jìn)行HASH-調(diào)用之前注冊腌制好的密碼-對比HASH值是否和這個密碼相同
用PHP+MySQL做網(wǎng)頁連接數(shù)據(jù)庫時,如何保證密碼安全?
你就不會用MD5加個密?或者把數(shù)據(jù)庫相關(guān)的操作寫成一個類進(jìn)行處理?
php連接數(shù)據(jù)庫的,密碼安全性
這個是不會的,只要其它人沒有權(quán)限訪問你的文件就可以,例如從服務(wù)器,F(xiàn)TP,網(wǎng)站后臺文件瀏覽之類的,只從前臺界面是拿不到php里面的變量(不包括網(wǎng)站漏洞)。
php連接數(shù)據(jù)庫密碼安全的問題
不需要,因為你可做服務(wù)端及客戶端的關(guān)聯(lián),修改其一就可了,
分享名稱:php數(shù)據(jù)庫密碼安全,網(wǎng)絡(luò)安全php
轉(zhuǎn)載注明:http://www.ef60e0e.cn/article/hopeih.html