Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/88: Рейтинг темы: голосов - 88, средняя оценка - 4.60
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001

Как работать с SecureString?

06.05.2016, 10:36. Показов 18169. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите в чем смысл этого класса? Строку в него преобразовать еще можно, но вот обратно вообще никак не выходит... Ну т.е. я видел в интернете всякие способы через Marshal, но неужели это так задумано? Может быть (как я понял) ее даже и не надо переводить в обычную строку, но как ее тогда хотя бы в БД добавить? И как потом сравнить 2 таких строки? Кажется перегруженного сравнения там тоже нет... Что толку с нее?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2016, 10:36
Ответы с готовыми решениями:

Как присвоить типу System.Security.SecureString тип string?
Как передать строку типа string в параметр типа System.Security.SecureString?

SecureString вместо String (пример в сообщении)
Добрый день. Есть метод который шифрует файлы (AES256) - найден на просторах всея интернета и немного доработан для моих нужн (курсача) ...

Безопасное получение хэша пароля, заданного через указатель из SecureString
Итак в продолжение темы "Как работать с SecureString?" вопрос следующий: как рассчитать md5-хэш из указателя IntPtr или обычного unsafe...

39
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 11:33  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Rius Посмотреть сообщение
Верно. Никак Сохранять нельзя, т.к. String опасен.
Но как именно я тогда должен сохранять в БД не вытаскивая ее в string???
Цитата Сообщение от Rius Посмотреть сообщение
Эта штука для работы с нативным кодом.
В ADO.Net кое-где это вот тут добавили:
https://msdn.microsoft.com/en-... 10%29.aspx
https://msdn.microsoft.com/en-... 10%29.aspx
Во первых это кажется просто задает пароль самой БД, а не записывает зашифрованный пароль в БД. Во вторых я использую EntityFramework. Минуточку!!! А что собственно если мне просто у сущности сделать поле пароля типа SecureString? Может оно само сообразит как его вытащить и записать?

Добавлено через 47 секунд
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Ты опять малость перестарался!
SecureString предназначен для хранения чистых строк(паролей).
Если ты пароль зашифровал, то и храни его спокойно в обычной переменной. Даже получив это, дешифрануть не смогут.
Может быть. Просто заинтересовал класс.
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 11:48
Цитата Сообщение от Dark Byte Посмотреть сообщение
Но как именно я тогда должен сохранять в БД не вытаскивая ее в string???
Предполагаю, что надо передать SecureString в нативный код, там зашифровать и вернуть зашифрованное обратно, для записи в БД. Не изучал ещё тему безопасности.

Цитата Сообщение от Dark Byte Посмотреть сообщение
Во первых это кажется просто задает пароль самой БД, а не записывает зашифрованный пароль в БД.
Правильно кажется.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 11:53  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Предполагаю, что надо передать SecureString в нативный код, там зашифровать и вернуть зашифрованное обратно, для записи в БД. Не изучал ещё тему безопасности.
Нативный код это dll на C++ или просто unsafe код на C#?
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 11:55
Я понимаю под этим dll на C/C++.
Видел примеры на unsafe C#, но качество оценить не могу: http://codereview.stackexchang... generation
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 12:31  [ТС]
Цитата Сообщение от Dark Byte Посмотреть сообщение
Минуточку!!! А что собственно если мне просто у сущности сделать поле пароля типа SecureString? Может оно само сообразит как его вытащить и записать?
Фиг кстати, протестил. Не умеет он ее сам извлекать. Ошибку пишет. Ну и фиг с ней. Наверное обойдусь без этой херни, только морока с ней. А толку то если у меня все равно хэши используются. Они же необратимые.
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 13:04
Цитата Сообщение от Dark Byte Посмотреть сообщение
А толку то если у меня все равно хэши используются. Они же необратимые.
Это значит, что смысла SecureString Вы так и не поняли.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 13:08  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Это значит, что смысла SecureString Вы так и не поняли.
Я понял смысл. А также то что мне ее использовать как и сказал LeniumSoft смысла нет. Потому что даже если кто то и перехватит хэш то вскрыть его все равно не сможет. Так зачем мне мучиться с SecureString еще?
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 13:11
К хэшу она отношения не имеет.
Вам смысла нет, это верно.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 13:12  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
К хэшу она отношения не имеет.
К хэшу имею отношения я! Я передаю все пароли в виде хэша. Я уже писал об этом. Поэтому и нет смысла.
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 13:15
Нет. Вы так и не поняли.
Пароли, полученные при вводе пользователем, сохраняются в виде строк. От строк вычисляются хэши и передаются в БД. Далее всё известно.
Строки же исходных паролей остаются в памяти и представляют уязвимость.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 13:21  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Нет. Вы так и не поняли.
Пароли, полученные при вводе пользователем, сохраняются в виде строк. От строк вычисляются хэши и передаются в БД. Далее всё известно.
Строки же исходных паролей остаются в памяти и представляют уязвимость.
О госпаде я же не гос. тайну защищаю, я пишу чат для диплома. Да исходные пароли продолжают висеть в памяти, но они рано или поздно удалятся сборщиком мусора это во первых. И во вторых когда клиент закроет приложение они уж точно удалятся. И уже нигде никогда их нельзя будет достать.
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 13:23
Цитата Сообщение от Dark Byte Посмотреть сообщение
Да исходные пароли продолжают висеть в памяти, но они рано или поздно удалятся сборщиком мусора это во первых. И во вторых когда клиент закроет приложение они уж точно удалятся. И уже нигде никогда их нельзя будет достать.
Это не первое и не второе. Это и есть та проблема, которую решает SecureString.
Несеръёзный подход к диплому...
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 13:27  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Это не первое и не второе. Это и есть та проблема, которую решает SecureString.
Несеръёзный подход к диплому...
Еще раз примерный алгоритм который вы предлагаете на словах объясните. Как именно я должен получить хэш из SecureString не получая из нее String?

Добавлено через 2 минуты
Для рассчета хэша я использую класс MD5.
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 13:30
Делаем интерфейс на WPF, с PasswordBox.
Передаём указатель на строку из SecureString в нативную dll. Там получаем хэш и возвращаем его в c#.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 13:33  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Делаем интерфейс на WPF, с PasswordBox.
Передаём указатель на строку из SecureString в нативную dll. Там получаем хэш и возвращаем его в c#.
Но я не хочу еще дополнительно писать dll с алгоритмом хэширования. Зачем писать велосипед? Все уже написано!
Цитата Сообщение от Dark Byte Посмотреть сообщение
Для рассчета хэша я использую класс MD5.
0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 13:34
Это ещё раз показывает, что Вы ничерта не поняли.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 13:39  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Это ещё раз показывает, что Вы ничерта не поняли.

Не по теме:

:D Да ну ее в баню эту уязвимость. Да я ничерта не понял и у меня несерьезный подход к диплому! Все равно его написал и забыл. И едва ли кто-то реально будет разбираться в моем коде. Сужу по курсачам. У нас обычно принимают их так: работает? работает! значит все ок, смотрим ПЗ (в основном на uml-диаграммы) и ставим зачет. Код сроду никогда никто не смотрит. Скажу больше я прошлый курсач сдавал там препод вообще не знал C#. :D

0
Эксперт .NET
 Аватар для Rius
13827 / 7899 / 1707
Регистрация: 25.05.2015
Сообщений: 23,978
Записей в блоге: 14
06.05.2016, 13:42
Ну, значит, программирование - это не Ваш путь.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
06.05.2016, 14:00  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Ну, значит, программирование - это не Ваш путь.
Не не не. Это моя профа. Я буду программистом по специальности работать. Просто тут реально какой смысл корячиться если никто не оценит. Это же не реальный проект.

Добавлено через 16 минут
Rius, вы меня прям растоптали, я то мню себя уже почти крутым "пОгромистом". Пошлите решать тогда эту проблему в новую тему! Расчет хэша из указателя
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
26.08.2016, 12:46
Цитата Сообщение от Dark Byte Посмотреть сообщение
Не не не. Это моя профа. Я буду программистом по специальности работать. Просто тут реально какой смысл корячиться если никто не оценит. Это же не реальный проект
Мы бы оценили
Цитата Сообщение от Dark Byte Посмотреть сообщение
Да исходные пароли продолжают висеть в памяти, но они рано или поздно удалятся сборщиком мусора это во первых.
1) скорее поздно
2) для рассчета хэша не нужно хранить всю строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.08.2016, 12:46

может ли купленная мною GTX460 работать к примеру не как должна работать GTX460 а как видюха по хуже?
Ребята, помогите пожалуйста в таком вопросе! Взял видеокарту Gainward GTX460 1Gb GS, так как я не давно за компом и всех вещей не знаю,...

Как может сервер-сайд код работать или не работать на конкретном компе?
Всем привет! Вот такая проблема. Есть сайт, все работает ок, но - один из компов имеющий Win98 и IE6.0 and service pack 1 работает очень...

Как работать с указателями и как работать с ссылками
Я в книге дочитал до темы указатели и ссылки, не понимаю как работать с указателями и как работать с ссылками. Я прочитал понятия я понимаю...

Что выгоднее работать как ООО или как физ.лицо
При подаче на модерацию в Я.директ - нужно было ввести свое ИНН - у меня его не оказалось - пришлось забивать мою фирму(ООО). Есть ли...

Как при пользовании COM - объектов работать с типом обявленым как SafeArray?
Как при пользовании COM - объектов работать с типом обявленым как SafeArray?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru