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, то вы в любое время можете обратиться ко мне.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

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




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




Как увеличить работоспособность мозга: простые советы
Как заставить работать джойстик в любой игре
Управление движением картинки с клавиатуры на JavaScript