Каково различие между SHA и Шифрованием AES? [закрытый]

Я столкнулся с той же проблемой и решил, наконец, перейти к следующей структуре, которая требует 2 запроса к базе данных, а затем остальная часть работы находится в памяти:

Сохранять узлы в таблице и ссылаться на график с помощью запись каждого узла:

Table Nodes

id  | title | graph_id
---------------------
105 | node1 | 2
106 | node2 | 2

Также сохраните ребра в другой таблице и снова свяжите граф, к которому принадлежат эти ребра, с каждым ребром:

Table Edges

id | from_node_id | to_node_id | graph_id
-----------------------------------------
1  | 105          | 106        | 2
2  | 106          | 105        | 2

Получите все узлы одним запросом, затем получить все края с другим.

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

78
задан mjn 5 September 2010 в 09:02
поделиться

5 ответов

SHA - это не шифрование, это односторонняя хеш-функция. AES (Advanced_Encryption_Standard) - это стандарт симметричного шифрования.

Ссылка AES

105
ответ дан 24 November 2019 в 10:24
поделиться

SHA - это семейство «алгоритмов безопасного хеширования», разработанных Агентством национальной безопасности. В настоящее время существует конкуренция среди десятков вариантов, кто станет SHA-3 , новым алгоритмом хеширования для 2012+.

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

AES , Advanced Encryption Standard - это алгоритм симметричного блока. Это означает, что он берет блоки по 16 байтов и шифрует их. Он «симметричный», потому что ключ допускает как шифрование, так и дешифрование.

ОБНОВЛЕНИЕ: Кекак был назван победителем SHA-3 2 октября 2012 г.

79
ответ дан 24 November 2019 в 10:24
поделиться

SHA и AES служат разным целям. SHA используется для генерации хэша данных, а AES - для шифрования данных.

Вот пример того, когда вам может быть полезен хэш SHA. Допустим, вы хотите загрузить ISO-образ DVD какого-нибудь дистрибутива Linux. Это большой файл, и иногда что-то идет не так, поэтому вы хотите убедиться, что то, что вы скачали, является правильным. Вам следует перейти к надежному источнику (например, к официальной точке загрузки дистрибутива), и у них, как правило, есть хэш SHA для ISO-образа. Теперь вы можете сгенерировать сопоставимый хэш SHA (используя любое количество открытых инструментов) для загруженных данных. Теперь вы можете сравнить два хеша, чтобы убедиться, что они совпадают, что подтвердит правильность загруженного вами изображения. Это особенно важно, если вы получили образ ISO из ненадежного источника (например, торрент) или если у вас возникли проблемы с использованием ISO и вы хотите проверить, не поврежден ли образ.

Как вы можете видеть в этом случае, SHA использовался для проверки данных, которые не были повреждены. У вас есть полное право просматривать данные в ISO.

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

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

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

Если вы хотите узнать больше об этих некоторых поисковых запросах в Википедии (помимо AES и SHA), вы хотите попробовать включить:

Алгоритм симметричного ключа (для AES) Криптографическая хеш-функция (для SHA) Криптография с открытым ключом (для PGP и SSL)

59
ответ дан 24 November 2019 в 10:24
поделиться

SHA означает алгоритм безопасного хеширования, а AES - расширенный стандарт шифрования. Итак, SHA - это набор алгоритмов хеширования. С другой стороны, AES - это шифр, который используется для шифрования. Алгоритмы SHA (SHA-1, SHA-256 и т. Д.) Будут принимать входные данные и создавать дайджест (хэш), это обычно используется в процессе цифровой подписи (создает хэш из нескольких байтов и подписывается с помощью закрытого ключа) .

6
ответ дан 24 November 2019 в 10:24
поделиться

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

7
ответ дан 24 November 2019 в 10:24
поделиться
Другие вопросы по тегам:

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