Как использовать функцию DES_DECRYPT () для получения данных из MySQL? - PullRequest
0 голосов
/ 03 июня 2011

Наконец, я пробую Функции шифрования и сжатия в mysql для безопасного пароля и имени пользователя.

Функция DES_ENCRYPT отлично работает для шифрования.Я даю код, который я использую для шифрования и сохранения в базе данных.

MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "insert into user (User_Id, Password, Branch, Upto_Date) values (DES_ENCRYPT('" + textBox1.Text + "'),DES_ENCRYPT('" + textBox2.Text + "'),'" + comboBox1.SelectedItem.ToString() + "','" + textBox4.Text + "') ";
connection.Open();
command.ExecuteNonQuery();
MessageBox.Show("Record Succesfully Added", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
connection.Close();

Но у меня проблемы с получением данных в функции DES_DECRYPT.

Я пытаюсь "select DES_DECRYPT(User_Id),DES_DECRYPT(Password),Branch,Upto_Date from user" код получить, но безрезультатно.Что я делаю для получения данных из mysql datatable?.

My sql datable

последняя запись вставлена ​​с использованием функции DES_ENCRYPT ().

1 Ответ

1 голос
/ 03 июня 2011

DES_DECRYPT - способ расшифровки DES_ENCRYPT данных.

Давайте придерживаться его части SQL.Простой пример:

/* generating test table */
CREATE TABLE `test` (
  `testField` varchar(512) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

/* adding some test data to it */
INSERT INTO test () VALUES (DES_ENCRYPT("Hello")), (DES_ENCRYPT("World"));

Теперь, чтобы узнать, как он выглядит в зашифрованном виде ...

SELECT testField FROM test;

+-------------+
| testField   |
+-------------+
| €p!˜*D°k    |
| €ü«ü€D»Ûë   |
+-------------+

... и расшифровать его!

SELECT DES_DECRYPT(testField) FROM test;

+-------------+
| testField   |
+-------------+
| Hello       |
| World       |
+-------------+

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

Мой совет:

  1. Попробуйте сначала разобраться с этим на стороне SQL (phpmyadmin, SQLyog, есть множество инструментов для непосредственной работы с базой данных MySQL).
  2. Если это работает, перейдите в свою программу .NET, чтобы завершить это.

Еще одно замечание: если вы используете этот вид защиты паролем, между вашими приложениями используется чистый пароль.и сервер базы данных.Даже если это соединение может быть защищено с помощью SSL, я бы посоветовал не делать это таким образом.Как правило, для этой цели безопаснее использовать алгоритмы хеширования (например, SHA512) и просто хранить хеш-коды в вашей базе данных, чтобы вообще избежать четких паролей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...