На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

SharpDevelop и хеширование SHA-224 с помощью C#


SHA-224 – один из криптографических алгоритмов, хеш-функция, с помощью которой создается отпечаток (хеш) любой строки (числа). Например, хеш SHA-224 для "upread.ru" выглядит так:

d9ad8f04516a81ed13724bc44b1002b2a9c8796c90a35366387d0331
В .NET Framework имеется пространство имен Cryptography, которое содержит базовый класс HashAlgorithm и производные классы, поддерживающие алгоритмы MD5, SHA-1, SHA-256, SHA-384 и SHA-512. Это значит, что вычислить в си шарп хеш SHA-256, к примеру, можно буквально несколькими строчкам кода:

string ish = "upread.ru";
byte[] byteIsh = new System.Text.UTF8Encoding().GetBytes(ish);
SHA256 shaMan = new SHA256Managed();
byte[] byteshaMan = shaMan.ComputeHash(byteIsh);
string  result = BitConverter.ToString(byteshaMan);
result = result.ToLower().Replace("-", string.Empty);
В приведенном выше листинге в первой строке мы задаем строку, которую нам надо хешировать, вторая строка переводит string в массив байтов, в третьей создаем объект класса SHA256Managed(), в четвертой непосредственно считаем хеш этого массива байтов. В пятой получившийся хеш конвертируем в «читабельный» вид. Ну и в шестой окончательно переводим его в привычное глазу состояние. Не забудьте также про using System.Security.Cryptography;.

Несмотря на то, что .NET Framework нет встроенного класса для алгоритма SHA-224, нам ничто не мешает создать его самостоятельно. Или воспользоваться готовым решением. Последним способом мы и воспользуемся, одновременно научимся работать в SharpDevelop.

Почему SharpDevelop?

А действительно, что нам мешает воспользоваться, например, Visual Studio 2013? Ничего, кроме того, что с некоторых пор даже express версия этой среды разработки стала условно-бесплатной. Конечно, можно воспользоваться любым торрент-трекером и скачать кряк или ключ для студии, но мы же законопослушные, граждане верно? А деньги мы не любим тратить и поэтому поищем альтернативу.

И альтернатива находится быстро – это SharpDevelop. Качаем отсюда последнюю версию (на момент написания данной статьи это пятая. Кстати, обратите внимание на размер – всего 13,5 Мб!), устанавливаем и либо создаем новый проект, либо открываем проект Visual Studio. Да-да, данная бесплатная среда разработки открывает проекты любых версий студии и при этом не ругается ни на какую совместимость. Интерфейс также очень похож на визуал студио, имеется поддержка русского языка:



Библиотека HashLib

Теперь попробуем реализовать нашу задачу по хешированию. Для начала нам требуется подключить библиотеку HashLib.dll. Откуда же мы её возьмем? А вот отсюда: HashLib. В описании проекта нам важна только вот эта строчка, в которой перечисляются поддерживаемые криптографические алгоритмы:



Находим там SHA224 и удовлетворенно качаем последнюю, либо любую другую версию – неважно, нам нужна будет только библиотека HashLib.dll. Кстати, если вам не хочется подключать dll, то можете просто добавить в проект несколько классов: начиная от SHA224.cs и другие, которые он за собой потянет.

Однако, есть способ и проще: скачать HashLib.dll (для Framework 4.0 или Framework 4.5) и подключить к проекту.

Хеширование SHA-224 с помощью C#

В нашем SharpDevelop выбираем «Проект» - «Добавить ссылку» - выбираем HashLib.dll. Теперь можно уже пробовать вычислять SHA-224:

using HashLib;
…
string ish = "upread.ru";
IHash ihash = HashFactory.Crypto.CreateSHA224();
HashResult hres = ihash.ComputeString(ish, System.Text.Encoding.UTF8);
string result = hres.ToString().ToLower().Replace("-","");
Проверить правильность результата можно в любом онлайн сервисе, например, здесь:



Вот так просто можно создать хеш строки по алгоритму SHA224. Если вам требуется какая-либо помощь, написать программу на заказ на C# или Java, то вы в любое время можете обратиться ко мне.




тегистатьи IT, шифрование, хеширование, си шарп, SharpDevelop





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Пример создания игры на флеш: часть 1
Проверка параметров SSL вашего сервера


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.