Шифрование Md5 симметрично или асимметрично?

Для моего приложения для iPhone Apple хочет знать, больше ли мое шифрование пароля (md5) затем 64-разрядное симметричный или больше затем 1024-разрядный симметричный. Я не смог найти его онлайн, таким образом, я задаюсь вопросом, знает ли кто-либо ответ. Кроме того, это считают соответствующей технологией шифрования для паролей, или я должен использовать что-то другое?

Спасибо за любую справку!

6
задан Scott Arciszewski 28 May 2019 в 20:58
поделиться

6 ответов

MD5 является функцией хеширования, поэтому по определению она не является обратимой. Это не относится к шифрованию (симметричному или асимметричному), которое должно быть обратимым, чтобы быть полезным.

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

Однако, возможно, удастся найти другой вход, который приведет к одному и тому же выходу. Это называется столкновением .

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

Однако, чтобы ответить на ваш оригинальный вопрос, на самом деле нет никакого способа сравнить MD5 или любой хэш с любым типом шифрования; они не имеют эквивалентов, потому что это похоже на сравнение яблок и апельсинов.

32
ответ дан 8 December 2019 в 02:07
поделиться

md5 на самом деле не является симметричным или асимметричным шифрованием, потому что оно не является обратимым ни симметричным, ни асимметричным. Это алгоритм Message Digest (безопасный хэш).

7
ответ дан 8 December 2019 в 02:07
поделиться

Это вообще шифрование , а не .

2
ответ дан 8 December 2019 в 02:07
поделиться

Это не шифрование, это дайджест. Если вы не посолили его, это не особенно безопасно, но они задают вам неправильный вопрос.

Что именно вы делаете с MD5 и паролями? Здесь есть стандартные способы, и всегда лучше использовать один, но, не зная, что вы хотите сделать, трудно указать вам на соответствующий стандарт.

5
ответ дан 8 December 2019 в 02:07
поделиться

I think MD5 is used for better security.... если мы говорим о любом алгоритме шифрования или дешифрования, они просто для преобразования любого открытого текста в зашифрованный текст. ... но с другой стороны MD5 обеспечивает уникальность того открытого текста, который будет отправлен любым источником (Алисой)... поэтому мы можем сказать, что для лучшей безопасности или для обеспечения оболочки открытого текста MD5 должен использоваться перед использованием любого алгоритма шифрования (симметричного или асимметричного).

0
ответ дан 8 December 2019 в 02:07
поделиться

Как уже упоминалось многими другими ребятами, MD5 не является симметричным или асимметричным алгоритмом.

Вместо этого все вместе это относится к разным ветвям криптографии. Это один из самых маленьких алгоритмов хеширования, доступных в платформе .Net. Размер ключа составляет всего 16 байт, что должно быть 128 бит. То, с чем вы учитесь своему хлебу с маслом.

Так что да, это больше, чем 64-битное, то есть всего 8 байт.

Максимальный размер ключа, который используют общие алгоритмы symm 'enc', составляет 256 бит (Rijndael Managed).

Если вы хотите, чтобы размер ключей был больше указанного, вы можете использовать алгоритм RC2 symm 'enc', который поддерживает переменные размеры ключей. Что-то, с чем вы можете поэкспериментировать?

Если вы хотите больше 1024 бит, тогда вам нужно посмотреть на алгоритмы Asymm 'Enc', такие как класс RSACryptoServiceProvider, который поддерживает размеры ключей до 16 КБ в битах, я думаю?

Если вы хотите использовать пароли, тогда вам нужно использовать алгоритмы хеширования с ключом, как и все, что угодно HMAC, это должны быть алгоритмы хеширования с ключом или MacTripleDes. Все они используют секретные ключи для шифрования хэша, который создается из предоставленных вами данных. Ключи создаются с использованием паролей и значений соли через класс RFC2898DerivesBytes. <- Не забывайте, что RC2, Rijndael, AES, DES и т. Д. Можно настроить на использование паролей для получения секретных ключей. Если вы думаете, что первое предложение этого абзаца немного вводит в заблуждение.Поэтому я добавил это, чтобы быть уверенным в том, что хеширование - это не то, что вам вообще нужно.

* ПОМНИТЕ, ЧТО ИМЕЮТСЯ УНИКАЛЬНЫЕ ИЕРАРХИИ НАСЛЕДОВАНИЯ В пространстве имен криптографии .net. Итак, MD5 является базовым абстрактным классом, от которого должны быть унаследованы все производные классы MD5. .Net предоставляет один такой производный класс, который называется классом MD5CryptoServiceProvider. По сути, это управляемый класс-оболочка, который вызывает неуправляемый API криптографических библиотек Windows. MD5 известен в официальных учебниках MS под общим термином «алгоритм хеширования без ключа». *

Вам доступно множество вариантов.

:) Наслаждайтесь!

0
ответ дан 8 December 2019 в 02:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: