2015-01-06 3 views
0

У меня есть столбец в базе данных, в котором хранится столбец «рейтинг» со значениями от от 1 до 9.Простой способ шифрования и дешифрования одной цифры

Есть ли простой способ зашифровать этот столбец, чтобы он не читался для людей с полным доступом к БД и SourceCode?

Должен быть способ извлечь точное значение (а не просто обрабатывать его как хеш),
, а зашифрованные строки должны отличаться для одного и того же ввода.

Ищет общий подход или решение PHP/.NET.

+1

1 байты "шифрованию" является своим родом бессмысленно. это сводилось бы к простому XORing ценности с чем-то другим. например 'rating_in_db = real_rating^user_id' или что-то в этом роде. –

+0

добавление row_id поможет получить случайный результат, но есть ли способ скрыть значения от людей с полным доступом к DB + SourceCode (a.k.a разработчикам)? –

+1

Однако, если у них есть доступ к базе данных и исходному коду, шифрование бессмысленно – Federkun

ответ

0

Некоторое время назад я поставил class на github, который будет делать трюк.

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

Ниже приведен пример того, как использовать его

require 'Cipher.php'; 

// First init the class by calling the constructor 
// Pass your personal key to the constructor as a 
// parameter. 
$cipher = new Cipher('AvErrySeCretPasSw0rd!1!2!3!'); 

$text = 'This is the piece of text we are going to encrypt.'; 

// Now we encrypt the above text 
// The returned value will be a base64encoded form of your encrypted 
// string. 
$encrypted = $cipher->encrypt($text); 

И расшифровать:

// Pass your personal key to the constructor as a 
// parameter. 
$cipher = new Cipher('AvErrySeCretPasSw0rd!1!2!3!'); 
// Now we are going to decrypt it. 
$decrypted = $cipher->decrypt($encrypted); 

Надеется, что это поможет

+0

Я думаю, что есть стандартные и более безопасные алгоритмы, а затем ваши;) –

+0

@ d.raev Я нашел sha256 достаточно безопасным – Peter

+0

, так что это в основном хэширование вашего пароля с помощью sha256 для получения секретного ключа и деформирование mcrypts. Реализация AES/Rijndael ... выглядит довольно стандартно для меня ... – DarkSquirrel42

Смежные вопросы