mcrypt簡單介紹
php程式設計師們在編寫**程式時,除了要保證**的高效能之外,還有一點是非常重要的,那就是程式的安全性保障。php除了自帶的幾種加密函式外,還有功能更全面的php加密擴充套件庫mcrypt和mhash。
其中,mcrypt擴充套件庫可以實現加密解密功能,就是既能將明文加密,也可以密文還原。
mcrypt 是 php 裡面重要的加密支援擴充套件庫,linux環境下:該庫在預設情況下不開啟。window環境下:php>=5.3,預設開啟mcrypt擴充套件。
mcrypt庫支援20多種加密演算法和8種加密模式,具體可以通過函式mcrypt_list_algorithms()和mcrypt_list_modes()來顯示[1]
加密演算法
mcrypt支援的演算法有:
cast-128
gost
rijndael-128
twofish
arcfour
cast-256
loki97
rijndael-192
saferplus
wake
blowfish-compat
desrijndael-256
serpent
xtea
blowfish
enigma
rc2tripledes
mcrypt支援的加密模式有:
cbccfb
ctrecb
ncfb
nofb
ofbstream
這些演算法和模式在應用中要以常量來表示,寫的時候加上字首mcrypt_和mcrypt_mode_來表示,如下面mcrypt應用的
des演算法表示為mcrypt_des;
ecb模式表示為mcrypt_mode_ecb;
< ?php
$str = "我的名字是?一般人我不告訴他!"; //加密內容
$key = "key:111"; //金鑰
$cipher = mcrypt_des; //密碼型別
$modes = mcrypt_mode_ecb; //密碼模式
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),mcrypt_rand);//初始化向量
echo "加密明文:".$str." $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); //加密函式
echo "加密密文:".$str_encrypt." $str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); //解密函式
echo "還原:".$str_decrypt;
執行結果:
加密明文:我的名字是?一般人我不告訴他!
加密密文: 鋶盌?]鷽?q攦軄l 笑 郺葄"簻 黙
還原:我的名字是?一般人我不告訴他!
<1>由例子中可看到,使用php加密擴充套件庫mcrypt對資料加密和解密之前,首先建立了乙個初始化 向量,簡稱為iv。由 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),mcrypt_rand);可見建立初始化 向 量需要兩個引數:size指定了iv的大小;source為iv的源,其中值mcrypt_rand為系統隨機數。
<2>函式mcrypt_get_iv_size($cipher,$modes)返回初始化向量大小,引數cipher和mode分別指演算法和加 密模式。
<3>加密函式$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); 該函式的5個引數分 別如下:cipher——加密演算法、key——金鑰、data(str)——需要加密的資料、mode——演算法模式、 iv——初始化向量
<4>解密函式mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); 該函式和加密函式的引數幾乎 一樣,唯一不同的是data,也就是說data為需要解密的資料$str_encrypt,而不是原始資料$str。
注:加密和解密函式中的引數cipher、key和mode必須一一對應,否則資料不能被還原
PHP mcrypt加密擴充套件使用總結
在開發中,很多時候我們在前後端互動中需要對一些敏感資料進行一定的加密。php中有提供了mcrypt的這樣乙個加密擴充套件實現對資料的加密解密。一 mcrypt擴充套件的安裝 在低版本的php中需要在配置檔案php.ini中顯式新增對擴充套件的引用,同時要保證擴充套件引用目錄中有相應的擴充套件檔案 在...
PHP mcrypt加密擴充套件使用總結
在開發中,很多時候我們在前後端互動中需要對一些敏感資料進行一定的加密。php中有提供了mcrypt的這樣乙個加密擴充套件實現對資料的加密解密。一 mcrypt擴充套件的安裝 在低版本的php中需要在配置檔案php.ini中顯式新增對擴充套件的引用,同時要保證擴充套件引用目錄中有相應的擴充套件檔案 在...
des vue 加密解密 DES加密 解密
外掛程式描述 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法簡介 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法的入口引數有三個 key data mode。其中k...