2011-05-05 34 views

回答

1

下面是使用mcrypt的一個例子:

<? 
// Encrypt Function 
function mc_encrypt($encrypt, $mc_key) { 
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND); 
    $passcrypt = trim(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($encrypt), MCRYPT_MODE_ECB, $iv)); 
    $encode = base64_encode($passcrypt); 
    return $encode; 
} 

// Decrypt Function 
function mc_decrypt($decrypt, $mc_key) { 
    $decoded = base64_decode($decrypt); 
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND); 
    $decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($decoded), MCRYPT_MODE_ECB, $iv)); 
    return $decrypted; 
} 
?> 

瞭解更多關於這裏的圖書館:http://php.net/manual/en/ref.mcrypt.php

編輯:

如果我誤解了這個問題,你想這樣做在MySQL你可以使用mysql內置的aes加密功能:

INSERT INTO users SET name = "User1", password = AES_ENCRYPT("password", "encryption key"); 

和:

SELECT AES_DECRYPT(password, "encryption key") FROM users WHERE id = 1; 

然而這僅僅是AES128,如果你想直接使用AES256在MySQL中,你將不得不修改源代碼並重新編譯。

瞭解更多關於在這裏:​​

http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_aes-encrypt

+0

是aes加密和解密嗎?謝謝Ancide! – KPO 2011-05-05 18:13:01

+0

是的。 MCRYPT_RIJNDAEL_256 == AES 256.澄清:「AES-128,AES-192和AES-256,從最初以Rijndael出版的較大集合中採用。」 – rzetterberg 2011-05-05 18:57:07

+0

謝謝!但我怎麼把mysql_entry $變量加密或解密.. – KPO 2011-05-05 19:15:02

1

如果你在談論數據的直接加密/解密,那麼在php.net manuals中有一些很好的例子。

然後,在將數據插入數據庫之前,您將對數據進行加密,但不會通過phpMyAdmin加密任何內容。

+0

,當我顯示的數據,我將如何通過解密表現出來? – KPO 2011-05-05 18:12:04