色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php mcrypt模塊

php mcrypt模塊是一個(gè)非常常用的加密擴(kuò)展庫(kù),在php中使用它可以對(duì)傳輸?shù)拿舾袛?shù)據(jù)進(jìn)行加密。這個(gè)模塊常見(jiàn)的應(yīng)用場(chǎng)景包括但不限于對(duì)密碼、信用卡號(hào)、社會(huì)安全號(hào)碼等敏感數(shù)據(jù)進(jìn)行加密。應(yīng)用到支付網(wǎng)關(guān)、會(huì)員系統(tǒng)、第三方登錄等業(yè)務(wù)中,可以起到非常有效的保護(hù)用戶(hù)數(shù)據(jù)的作用。

很多人熟知的一個(gè)加密算法就是AES算法,md5, sha1等都是加密算法,它們都可以有這個(gè)拓展庫(kù)實(shí)現(xiàn)。這里以AES算法為例,簡(jiǎn)要介紹一下php mcrypt模塊的使用。

$key = 'key';//設(shè)置密鑰即可
$iv = 'iv';//初始化向量
$data = 'data';//要加密的數(shù)據(jù)
$td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
mcrypt_generic_init($td, $key, $iv);
$encrypted = mcrypt_generic($td, $data);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

上面這段代碼就是一個(gè)AES加密數(shù)據(jù)的示例,其中$key、$iv、$data參數(shù)即為加密算法所需要的三個(gè)參數(shù)。其中$key是密鑰,可以自己隨便設(shè)置,建議大于16位;$iv是初始化向量,也是可以隨機(jī)生成的;$data就是要加密的數(shù)據(jù),調(diào)用函數(shù)即可進(jìn)行加密。

我們這里提到了調(diào)用函數(shù),這個(gè)函數(shù)會(huì)返回加密后的字符串,我們還需要將這個(gè)加密后的字符串進(jìn)行解密,才可以得到原數(shù)據(jù)。如下面這段代碼:

$key = 'key';//與加密時(shí)設(shè)置的一樣
$iv = 'iv';//同上
$data = $encryptedString;//加密后的字符串
$td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $data);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

這里我們調(diào)用了一個(gè)函數(shù),這個(gè)函數(shù)接收的第二個(gè)參數(shù)就是加密后的字符串,調(diào)用后會(huì)返回原始數(shù)據(jù),即我們想要的解密后的數(shù)據(jù)。

在實(shí)際開(kāi)發(fā)過(guò)程中,通常我們不會(huì)使用mcrypt_generic()函數(shù)進(jìn)行數(shù)據(jù)加密,而是使用mcrypt_encrypt()函數(shù)進(jìn)行數(shù)據(jù)加密,因?yàn)樗鼈鞯膮?shù)更加易于理解。

$key = 'key';
$iv = 'iv';
$data = 'data';
$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
$key = substr($key, 0, mcrypt_enc_get_key_size($cipher));
mcrypt_generic_init($cipher, $key, $iv);
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
mcrypt_generic_deinit($cipher);
mcrypt_module_close($cipher);

這里說(shuō)明一下,函數(shù)mcrypt_encrypt()的第一個(gè)參數(shù)是加密算法的類(lèi)型,第二個(gè)參數(shù)是密鑰,第三個(gè)參數(shù)是要進(jìn)行加密的數(shù)據(jù),第四個(gè)參數(shù)是加密模式,第五個(gè)參數(shù)是初始化向量。

總結(jié)一下,php mcrypt模塊是php實(shí)現(xiàn)加密的常用拓展,可以結(jié)合AES、MD5等加密算法進(jìn)行使用,這樣可以自動(dòng)保護(hù)傳輸?shù)拿舾袛?shù)據(jù)。同時(shí)應(yīng)該注意構(gòu)造密鑰、初始化向量等參數(shù),保證加密安全性。在實(shí)際使用中,可以使用mcrypt_encrypt()函數(shù)方便清晰地實(shí)現(xiàn)數(shù)據(jù)加密。