php數(shù)據(jù)鎖定解鎖 php數(shù)據(jù)加密解密

PHP常用加密解密方法

作者/上善若水

我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),我們努力開拓更好的視野,通過不懈的努力,成都創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),成都小程序開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫(kù)的技術(shù)開發(fā)工程師。

1.md5(string $str,bool $flag = false);

$flag = false 默認(rèn)返回32位的16進(jìn)至數(shù)據(jù)散列值

$flag = true ?返回原始流數(shù)據(jù)

2.sha1($string,$flag = false)

$flag = false 默認(rèn)返回40位的16進(jìn)至數(shù)據(jù)散列值

true ?返回原始流數(shù)據(jù)

3.hash(string $algo,srting $str,bool $flag);

$algo : 算法名稱,可通過hash_algos()函數(shù)獲取所有hash加密的算法

如:md5,sha1等,采用md5,sha1加密所得結(jié)果和1,2兩種方式結(jié) 果相同。

$flag = false 默認(rèn)返回16進(jìn)至的數(shù)據(jù)散列值,具體長(zhǎng)度根據(jù)算法不同

而不同。

true ?返回原始流數(shù)據(jù)。

4.crypt(string $str,$string $salt);

函數(shù)返回使用 DES、Blowfish 或 MD5 算法加密的字符串。

具體算法依賴于PHP檢查之后支持的算法和$salt的格式和長(zhǎng)度,當(dāng) 然具體結(jié)果也和操作系統(tǒng)有關(guān)。比較結(jié)果采用 hash_equals($crypted,crypt($input,$salt));//且salt值相同

Password_verify($str,$crypted);

5.password_hash ( string $str, integer $algo [, array $options ] )

函數(shù)返回哈希加密后的密碼字符串, password_hash() 是crypt()的 一個(gè)簡(jiǎn)單封裝

$algo : 算法 PASSWORD_DEFAULT ,PASSWORD_BCRYPT

$options = [

“cost”=10,//指明算法遞歸的層數(shù),

“salt”=“xxadasdsad”//加密鹽值,即將被遺 棄,采用系統(tǒng)自動(dòng)隨機(jī)生成安全性更高

];

使用的算法、cost 和鹽值作為哈希的一部分返回

Password_verify($str,$hashed);

6.base64_encode(string $str)

設(shè)計(jì)此種編碼是為了使二進(jìn)制數(shù)據(jù)可以通過非純 8-bit 的傳輸層 傳輸,例如電子郵件的主體。base64_decode(string $encoded)

可以進(jìn)行解碼;

7.mcrypt_encrypt ( string $cipher , string $key , string $data ,

string $mode [, string $iv ] )

mcrypt_decrypt ( string $cipher , string $key , string $crypted ,

string $mode [, string $iv ] )

$ciper:加密算法,mcrypt_list_algorithms()可以獲取該函數(shù)所有支持的算法

如MCRYPT_DES(“des”),MCRYPT_RIJNDAEL_128(“rijndael-128”);

$mode : 加密模式 ,mcrypt_list_modes()獲取所有支持的加密模式,ecb,cbc

$key: 加密的秘鑰,mcrypt_get_key_size ( string $cipher , string $mode )

獲取指定的算法和模式所需的密鑰長(zhǎng)度。$key要滿足這個(gè)長(zhǎng)度,如果長(zhǎng) 度無效會(huì)報(bào)出警告。

$iv : 加密的初始向量,可通過mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] ),

Iv的參數(shù)size:

通過mcrypt_get_iv_size ( string $cipher , string $mode )獲取

Iv 的參數(shù)source:

初始向量數(shù)據(jù)來源。可選值有: MCRYPT_RAND (系統(tǒng)隨機(jī)數(shù)生成 器), MCRYPT_DEV_RANDOM (從 /dev/random 文件讀取數(shù)據(jù)) 和 ?MCRYPT_DEV_URANDOM (從 /dev/urandom 文件讀取數(shù)據(jù))。 在 Windows 平臺(tái),PHP 5.3.0 之前的版本中,僅支持 MCRYPT_RAND。

請(qǐng)注意,在 PHP 5.6.0 之前的版本中, 此參數(shù)的默認(rèn)值 為 MCRYPT_DEV_RANDOM。

Note: 需要注意的是,如果沒有更多可用的用來產(chǎn)生隨機(jī)數(shù)據(jù)的信息, 那么 MCRYPT_DEV_RANDOM 可能進(jìn)入阻塞狀態(tài)。

$data : 要加密的字符串?dāng)?shù)據(jù)

php 如何鎖表

在進(jìn)行數(shù)據(jù)表檢查或修補(bǔ)時(shí),可以先將數(shù)據(jù)表鎖定,可確保數(shù)據(jù)表的安全:

mysqlLOCK TABLE tbl_name READ;

mysqlFLUSH TABLES;

將數(shù)據(jù)表鎖定后再進(jìn)行檢查或修補(bǔ)的工作。完成后再解除鎖定:

mys()qlUNLOCK TABLES;

//LOCK TABLE tbl_name READ表示要鎖定成只讀狀態(tài),在這個(gè)狀態(tài)下用戶只能讀取數(shù)據(jù)表,不能寫入。

LOCK TABLE tbl_name WRITE則是更嚴(yán)格的鎖定,用戶不能讀取也不能寫入。

如何在php中執(zhí)行Mysql 鎖定

有表鎖,行鎖,頁鎖

頁級(jí):引擎 BDB。

表級(jí):引擎 MyISAM , 理解為鎖住整個(gè)表,可以同時(shí)讀,寫不行

行級(jí):引擎 INNODB , 單獨(dú)的一行記錄加鎖

1) 表級(jí)鎖:開銷小,加鎖快;不會(huì)出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低。

2) 行級(jí)鎖:開銷大,加鎖慢;會(huì)出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高。

3) 頁面鎖:開銷和加鎖時(shí)間界于表鎖和行鎖之間;會(huì)出現(xiàn)死鎖;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般。

一般不在PHP中使用鎖操作,因?yàn)槿绻i了庫(kù),如果遇到錯(cuò)誤沒有及時(shí)的解鎖,就會(huì)導(dǎo)致不能訪問數(shù)據(jù)的情況。

可以使用MYSQL的事務(wù),就是定義事務(wù)開始,然后有幾個(gè)語句要執(zhí)行,然后根據(jù)情況,如果有一個(gè)語句沒有執(zhí)行成功,可以回滾(取消這幾個(gè)語句的執(zhí)行),從而達(dá)到幾個(gè)語句都執(zhí)行成功或者都不執(zhí)行的效果,在強(qiáng)事務(wù)型的應(yīng)用中一般使用這個(gè)方式

使用php寫,用戶連續(xù)登錄5次密碼錯(cuò)誤,會(huì)被鎖定,24小時(shí)后會(huì)被解鎖,怎么寫啊

給你描述下邏輯把

user表,增加兩個(gè)字段

第一個(gè)叫errorlogin_time,默認(rèn)為空,記錄禁止登陸開始時(shí)間

第二個(gè)叫error_count,記錄目前錯(cuò)誤次數(shù)

每次輸入密碼,檢查errorlogin_time,若為空,則進(jìn)行密碼校驗(yàn)--A;

若errorlogin_time不為空,檢查記錄時(shí)間與目前時(shí)間相差多久,若大于24小時(shí),則清空errorlogin_time和error_count字段,進(jìn)行密碼校驗(yàn)--A。若小于24小時(shí),則直接提示密碼鎖定,禁止登陸,結(jié)束程序。

備注A處:若密碼正確,予以登陸,清空errorlogin_time和error_count字段,分配session。

若密碼錯(cuò)誤,同時(shí)error_count小于5,則error_count+1更新數(shù)據(jù)庫(kù)。若error_count大于等于5,則error_count為5,errorlogin_time為當(dāng)前時(shí)間,同時(shí)提示禁止登陸,程序結(jié)束。

分享文章:php數(shù)據(jù)鎖定解鎖 php數(shù)據(jù)加密解密
標(biāo)題URL:http://www.muchs.cn/article6/ddihhig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、虛擬主機(jī)、網(wǎng)站策劃網(wǎng)站內(nèi)鏈、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管