Как зашифровать данные в покое? - PullRequest
0 голосов
/ 05 мая 2011

КАК шифровать данные в покое?Я знаю, SSL-шифрование в пути.

Как интегрировать 256-битное шифрование AES в phpmyadmin?

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Вот пример использования 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

1 голос
/ 05 мая 2011

Если вы говорите о прямом шифровании / дешифровании данных, то есть несколько хороших примеров в руководствах php.net .

Затем вы бы зашифровали свои данные перед тем, как вставить их в свою базу данных, вы ничего бы не зашифровали через phpMyAdmin.

...