bejos3519 Ответов: 3

Как расшифровать код из encrypt ниже


Protected Function encrypt(ByVal pass As String) As String

       encrypt = Nothing
       Dim bytPassword As Byte() = Nothing
       Dim bytHash As Byte() = Nothing
       Dim sha1Obj As SHA384Managed = New SHA384Managed()
       bytPassword = Encoding.UTF8.GetBytes(pass)
       bytHash = sha1Obj.ComputeHash(bytPassword)

       sha1Obj.Clear()

       encrypt = System.Convert.ToBase64String(bytHash)
 End Function


Что я уже пробовал:

как расшифровать код из encrypt ниже

3 Ответов

Рейтинг:
1

phil.o

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

Если вы хотите сравнить хэшированные пароли, вы должны вычислить хэш предоставленного пароля и сравнить его с сохраненным хэш-значением.


bejos3519

у меня есть такая попытка :

Dim x As Byte () = Nothing
x = система.Конвертировать.FromBase64String(шифрования)

но я не знаю, как повернуть вспять.
bytHash = sha1Obj. ComputeHash(bytPassword)

phil.o

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

bejos3519

мне так грустно. :(
но ничего не поделаешь...

спасибо, друг.

Рейтинг:
1

W∴ Balboos, GHB

Первый ответ был 100% - но я использую это, чтобы объяснить вам, что это значит в более простых деталях.

Шифрование/дешифрование: они используются для того, чтобы взять какие-то данные (например, сообщение) и сделать их нечитаемыми (шифрование) до тех пор, пока кто-то с соответствующим инструментом не сможет преобразовать их обратно в исходную форму (дешифрование). Обычно для этого требуется какой-то пароль, так что просто наличие одного и того же инструмента не откроет дверь.

Хеш: это способ взять данные и с помощью математического алгоритма преобразовать их в новое значение, которое должно быть уникальным для исходных данных. Уникальность в этом случае означает только то, что если вы (1) начнете с одних и тех же данных и (2) примените тот же алгоритм хеширования, (3) вы получите тот же результат. В основном, однако, данные были нарезаны и нарезаны кубиками, нарезаны и сморщены способами, которые нельзя отменить. Например, если я использую что-то вроде сложения в качестве алгоритма хеширования и даю вам ответ как 100, вы не знаете, как я его получил: 1 + 99, 3 + 72 + 25 и т. Д. И т. Д., Это пример очень грубый. Истинные хеши - это очень большие результаты гораздо более сложной арифметики, поэтому случайно получить такое же значение практически невозможно.

Итак - для шифрования у вас есть результат, который можно восстановить в исходное состояние. Для хэша вы не можете отменить его. Однако вы можете хэшировать известное значение и проверять, соответствует ли оно вашему сохраненному значению (например, паролям).


bejos3519

о слезы... мне так грустно.
но спасибо друг

W∴ Balboos, GHB

И спасибо - возможность учить - это возможность учиться. Одна вещь, которую нужно иметь в виду с этой областью вопросов и ответов: если какой-либо из ответов "отвечает" на ваш вопрос, примите его, и таким образом вопрос будет помечен ответом и удален из открытого вопроса. Просто хорошая уборка.

Рейтинг:
0

Patrice T

Цитата:
как расшифровать код из encrypt ниже
А ты-нет!
Поскольку SHA384-это шифрование бота, оно не является обратимым.
Ша - это как контрольная сумма.
Пример: получите это значение 12345678987654321011234596789
получить контрольную сумму t(его путь: 12+34+56+78+98+76+54+32+10, вы получаете 450 и снова обращаетесь к 4+50, и вы получаете 54 в качестве контрольной суммы.
то, что вы хотите, - это повернуть процесс вспять, это невозможно.
Ша просто сложнее в том смысле, что очень трудно найти 2 строки, которые дадут один и тот же результат, и это весь интерес ша.