请问我在休息时加密数据吗?我知道SSL在传输过程中加密。
如何在phpmyadmin中集成AES 256位加密?
答案 0 :(得分:1)
如果您正在谈论直接加密/解密数据,那么php.net manuals中就有一些很好的例子。
然后在将数据插入数据库之前加密数据,不会通过phpMyAdmin加密任何内容。
答案 1 :(得分: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中执行此操作,则可以使用内置在aes加密函数中的mysql:
INSERT INTO users SET name = "User1", password = AES_ENCRYPT("password", "encryption key");
和:
SELECT AES_DECRYPT(password, "encryption key") FROM users WHERE id = 1;
然而,这只是aes128,如果你想直接在mysql中使用aes256,你必须修改源代码并重新编译。
在这里阅读更多相关信息:
http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_aes-encrypt