|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
Безопасное получение хэша пароля, заданного через указатель из SecureString06.05.2016, 14:01. Показов 3159. Ответов 20
Метки нет (Все метки)
Итак в продолжение темы "Как работать с SecureString?" вопрос следующий: как рассчитать md5-хэш из указателя IntPtr или обычного unsafe указателя? (получим из SecureString) Я использую класс MD5 для расчета хэша. Собственно вариантов два: попробовать как то скормить ему указатель (я пока не нашел методом принимающих указатели) или же найти какую то другую библиотеку которая умеет считать хэши. Подскажите пожалуйста. (А то меня Rius достал уже!
)Добавлено через 5 минут P.S. гугл по запросу "c# md5 hash from pointer" ничего внятного ответить не смог.
0
|
|
| 06.05.2016, 14:01 | |
|
Ответы с готовыми решениями:
20
Получение страницы через cURL с учетом хэша в ссылке Использование MD5 для проверки хэша пароля с MySQL Получение MD5 хэша файла |
|
14297 / 9382 / 1353
Регистрация: 21.01.2016
Сообщений: 35,370
|
||
| 06.05.2016, 14:14 | ||
|
0
|
||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||
| 06.05.2016, 14:20 [ТС] | ||
|
Добавлено через 3 минуты Usaga, не притворяйтесь что не поняли вопрос. Естественно считать хэш надо не самого указателя, а того что по нему записано.
0
|
||
|
14297 / 9382 / 1353
Регистрация: 21.01.2016
Сообщений: 35,370
|
|
| 06.05.2016, 14:22 | |
|
Dark Byte, я хочу сказать, что если нужно подсчитать хэш только для указателя, а не для данных на которые он указывает, то достаточно просто привести указатель к uint или ulong. Но это тупость. мне кажется, что ты неправильно вопрос поставил...
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|||
| 06.05.2016, 14:23 [ТС] | |||
Мне казалось это очевидно.
0
|
|||
|
14297 / 9382 / 1353
Регистрация: 21.01.2016
Сообщений: 35,370
|
|
| 06.05.2016, 14:24 | |
|
Dark Byte, тогда смотри в сторону маршалинга - копируешь данные в управляемый массив и уже над ним сотворяешь MD5.
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||
| 06.05.2016, 14:26 [ТС] | ||
|
0
|
||
|
14297 / 9382 / 1353
Регистрация: 21.01.2016
Сообщений: 35,370
|
|
| 06.05.2016, 14:26 | |
|
0
|
|
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
||
| 06.05.2016, 14:26 | ||
|
Не по теме: Чего ты такой агрессивный? Пойди валерьяночки накапай себе! Ты этот SecureString где получаешь? Где у тебя пароль вводится?
0
|
||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|||
| 06.05.2016, 14:28 [ТС] | |||
|
Не по теме: Сроки давят на нервы. :D
0
|
|||
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
||
| 06.05.2016, 14:40 | ||
|
Просто нежелательно хранить эту строку в переменной или свойстве объекта. Для хранения в качестве свойства объекта создали SecureString. https://arlvin.wordpress.com/2... ma-part-1/ В своих методах можешь получать строку и делать с ней любые манипуляции. Метод отработает, строки не станет.
0
|
||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
| 06.05.2016, 14:48 [ТС] | |
|
LeniumSoft, вы с Rius-ом меня в конец запутали!!! Rius, Прокомментируйте пожалуйста!!! Потому что блин получается противоречие. Он говорит что строку (экземпляр) могут перехватить в памяти. А это типа уязвимость.
Добавлено через 1 минуту Потому что хэш то он тоже не сразу получается. Сначала нужен экземпляр обычной строки полученной из SecureString. Так вот ее то вроде как и могут перехватить прежде чем ее уничтожит сборщик мусора.
0
|
|
|
|
|
| 06.05.2016, 15:25 | |
|
Dark Byte, для решения этой возможной уязвимости и сделан SecureString:
Если создать переменную типа String с паролем, она останется в памяти и может быть перехвачена. Да, там есть уборщик мусора. Но успеть найти строку до уборки, или до очистки памяти переменной, или вообще что-то искать - все варианты возможны. У SecureString есть возможность явно контролировать время жизни переменной, а у String - нет. В этом LeniumSoft ошибается или упрощает.
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
| 06.05.2016, 16:48 [ТС] | |
|
Таки что мне то делать? Как рассчитать хэш имея только указатель на данные?
0
|
|
|
|
||||||||||||||||
| 06.05.2016, 18:11 | ||||||||||||||||
|
SecureString позволяет получить и указатель на данные, и их количество.
Потом это через PInvoke передаётся в нативную DLL, вместе с буфером под результат. Код в DLL вычисляет результат и помещает в выходной буфер. Управляемый код обрабатывает буфер и получает из него хэш в удобочитаемом виде. Несколько набросков кода:
0
|
||||||||||||||||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
| 06.05.2016, 18:15 [ТС] | |
|
Rius, а где реализация DB_CalculateHash? Я о том и спрашиваю где мне взять реализацию алгоритма хэширования в нативном коде? Это в .NET она уже реализована встроенная, а в C++ я хз...
0
|
|
|
|
|
| 06.05.2016, 18:19 | |
|
Dark Byte, ищите, всё есть в этих ваших интернетах.
MD5 Hash посредством WinApi
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||
| 06.05.2016, 18:30 [ТС] | ||
Короче я займусь этим в самом конце если время останется. Сейчас еще есть масса других задач по этому проекту...
0
|
||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
| 09.05.2016, 12:33 [ТС] | |
|
Rius, вы же не надеялись что я не посмотрю что там?
спс думаю мне это подойдет!
0
|
|
| 09.05.2016, 12:33 | |
|
Помогаю со студенческими работами здесь
20
Получение доступа к методам дочернего класса через указатель на родительский, хранимый в vector
Безопасное соединение через Delphi Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|