Безопасное получение хэша пароля, заданного через указатель из SecureString - C#
Формулировка задачи:
Итак в продолжение темы "Как работать с SecureString?" вопрос следующий: как рассчитать md5-хэш из указателя IntPtr или обычного unsafe указателя? (получим из SecureString) Я использую класс MD5 для расчета хэша. Собственно вариантов два: попробовать как то скормить ему указатель (я пока не нашел методом принимающих указатели) или же найти какую то другую библиотеку которая умеет считать хэши. Подскажите пожалуйста. (А то меня
Rius
достал уже! )
P.S. гугл по запросу "c# md5 hash from pointer" ничего внятного ответить не смог.
Решение задачи: «Безопасное получение хэша пароля, заданного через указатель из SecureString»
textual
Листинг программы
IntPtr passwordPointer = Marshal.SecureStringToGlobalAllocUnicode(password); StringBuilder hashBuilder = new StringBuilder(256); string hashString = String.Empty; try { if (Hasher.DB_CalculateHash(passwordPointer, password.Length, hashBuilder, hashBuilder.Capacity)) { hashString = hashBuilder.ToString(); } else { throw new Win32Exception(Marshal.GetLastWin32Error()); } } finally { Marshal.ZeroFreeGlobalAllocUnicode(passwordPointer); } this.HashedPassword = hashString;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д