Расшифровка пароля в Visual C # - PullRequest
0 голосов
/ 02 апреля 2012

Я работаю с базой данных, где некоторые из зашифрованных данных, которые я вставил в базу данных, должны быть расшифрованы, чтобы показать их пользователю.Можно ли преобразовать расшифрованную запись сообщения / varchar в базе данных в их оригинальную или строковую форму?скажем, у меня есть это хешированное сообщение

`abc = `'7meXQAMRb+ERvBj6Dy/SEe6ldukGy6bTKugnCsoYyl+lYNT6';

есть ли способ вернуть 7meXQAMRb+ERvBj6Dy/SEe6ldukGy6bTKugnCsoYyl+lYNT6 обратно в abc снова?

Кстати, я использовал Omu Encrypto для шифрования моего пароля

Ответы [ 3 ]

2 голосов
/ 02 апреля 2012

Нет, вы не можете расшифровать хэшированные данные.

В этом весь смысл хэширования информации;в большинстве случаев это односторонний процесс.

Вы можете использовать то, что называется «Радужной атакой», чтобы перебрать некоторые входные данные и посмотреть, совпадают ли хэши, но, честно говоря, это занимает много времени и, вероятно, не то, чтоВы ищете.

Подробнее об ответе Эрика Дж.

1 голос
/ 02 апреля 2012

Нельзя надежно перевернуть хешированный пароль в исходную строку.Тем не менее, возможно восстановить НЕКОТОРЫЕ допустимые входные данные, которые дают данный хэш.Я даю этот ответ, потому что другие ответы верны лишь частично, и важно понять относительную безопасность хеш-функции.

Чтобы понять это, предположим, что вы используете 1-битный алгоритм хеширования (то естьхеш равен 1 или 0).Половина всех строк, которые вы хэшируете, даст "1".Разверните это до 2-битного хэша, и строки 1-в-4, которые вы случайным образом хешируете, приведут к заданному значению хэша (хэши будут 0, 1, 2 или 3 ... в двоичном 00, 01, 10, 11).Разверните это, скажем, 128 битов, и, хотя коллизии хешей FAR менее распространены, они все же происходят.Если ваш хэш-алгоритм имеет известные уязвимости, его можно легко вычислить с вычислительной точки зрения.

Например, MD5 можно атаковать с помощью Rainbow Tables .Существуют онлайн-сервисы, которые предлагают «взлом» хеша, например http://md5crack.com/. Здесь взлом означает восстановление НЕКОТОРОГО допустимого ввода, который дает хеш.Даже грубые взломы жизнеспособны при современных вычислительных мощностях, особенно при использовании подхода на основе графических процессоров и / или распределенных вычислений.

Хеши - отличный инструмент, но имейте в виду ваши требования безопасности и относительную простоту обращения вспятьхэш, сгенерированный выбранным вами алгоритмом хеширования в некоторый допустимый ввод, который дает этот хеш.Кроме того, всегда будьте уверены и используйте солт-значение со своим хэшем.

ОБНОВЛЕНИЕ

Теперь, когда вопрос переписан, я бы направил вас к шифрованию AES,См.

Использование шифрования AES в C #

0 голосов
/ 02 апреля 2012

Хэши являются односторонними, но если вы использовали сторонний метод шифрования, как вы сказали, они также должны обеспечить метод дешифрования.

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