Вычисление хэша md5 на Objective-C

{lang: 'ru'}

Сегодня мне нужно было внедрить md5-хэширование паролей в базе данных приложения для iPhone. Работа с базой осуществляется через уже описанную Objective-C ORM-библиотеку. Соответственно, и хэшировать очень хотелось какими-нибудь стандартными средствами Objective-C. Для решения поставленной задачи был произведен непродолжительный поиск в интернете, и найдено решение, которое на удивление точно подошло. На удивление – потому что когда я хотел хэшировать md5 средствами C#, то я нашел как минимум три хоть и очень похожих, но дающих разный результат методов реализации. А найденное мною решение для Objective-C выдает результат такой же, как и выбранный метод на C#, что не могло меня не обрадовать.

Вот это решение:

Файл MyExtensions.h:

Файл MyExtensions.m:

В нем используется возможность создания расширений для стандартных типов данных Cocoa. Благодаря этому, после подключения файла MyExtension.h, становится возможным следующий вызов:


Удобно, не правда ли? Ну и, раз результат этого метода совпадает для уже описанного md5-хэширования на C#, можно понять, что после выполнения указанного кода в строке hash будет содержаться fae8a9257e154175da4193dbf6552ef6 (что по образцу предыдущего поста об md5 также вынесено в качестве картинки-иллюстрации в начале поста).


Полезная статья? Их будет больше, если вы поддержите меня!