imho.ws |
![]() |
![]() |
![]() |
# 1 |
Junior Member
Регистрация: 01.10.2004
Сообщения: 54
![]() |
Генератор случайных чисел на C++, C#
Подскажите, как можно генерировать случайные символы (числа) на C++, C#.
Причём набор символов задан изначально в программе, т.е. генерация происходит из определенного набора чисел, которые заданы изначально. Всё это работает и сохраняется в базе MSSQL, в таблице с такими например полями: nomer(ID), login, pwd, comment Т.е. это просто программа генерации и хранения паролей. Пользователь набирает login и comment и нажимает на "сгенерить". В поле pwd появляется сгенерированный случайный набор символов (пароль). И чтобы это всё хранилось в базе MSSQL, а не в текстовом файле. |
![]() |
![]() |
# 2 |
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Генерация 10-и символьного пароля из заранее определенного массива символов:
Код:
private void button1_Click(object sender, EventArgs e) { Random rnd = new Random(); Char[] pwdChars = new Char[26] {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; textBox1.Text = String.Empty; for (int i = 0; i < 10; i++) textBox1.Text += pwdChars[rnd.Next(0, 25)]; } |
![]() |
![]() |
# 3 |
Junior Member
Регистрация: 08.11.2006
Адрес: Quantizer
Сообщения: 67
![]() |
Я не хочу обижать, но люди прослушавшие курс криптографии должны знать, что такой способ плох. А увидев реализацию скажут, что автор не знает, что такое пара случайное число и крипто-стойкий пароль.
С другой стороны, когда секреты не очень важны, то такой способ пойдет, предварительно расширив его на: 1. Цифры 2. Буквы различных регистров. 3. Знаки препинания. А если интересно -- то генерацию случайных чисел можно найти в "Исскустве Программирования" Дональда Кнута, а почему этого нельзя -- делать для генерации паролей в красной "книге криптографии=)" Брюса Шнайера.
__________________
Matrix has you... Последний раз редактировалось PinGUIWin; 27.03.2007 в 01:17. Причина: очепятки |
![]() |
![]() |
# 5 |
Junior Member
Регистрация: 01.10.2004
Сообщения: 54
![]() |
Всё отлично сработало. Спасибо. Расширил массив до цифр и букв разного регистра. А какая вероятность, что сгенерированные пароли совпадут? И можно ли ещё каким-нибудь простым способом увеличить "криптостойкость" ?
Или например если преобразовывать строку ГГГГ/мм/дд случайным образом в строку символов - это может сойти за более "криптостойкий" пароль и за более большую вероятность ""? И такой вопрос: как можно сделать, чтобы можно было исключать необходимые символы из набора символов. Например 0 О и т.д. Но не просто удалив их из кода, а в новом textBox'e вводить такие символы и они, соответственно не генерятся. Последний раз редактировалось Crimson; 29.03.2007 в 13:53. |
![]() |
![]() |
# 6 |
Junior Member
Регистрация: 08.11.2006
Адрес: Quantizer
Сообщения: 67
![]() |
Тогда уж лучше не дату, в время в миллисекундах пропустить через хеш (читай, преобразовать в строку
![]() А про втрое -- честно не знаю, как это можно реализовать на C#. Но на C++ я бы перехватывал сообщения textBox и проверял каждый символ. PS. А датчик случайных чисел инициализируется? ![]()
__________________
Matrix has you... |
![]() |
![]() |
# 7 | ||
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
http://www.sql.ru/forum/actualthread.aspx?tid=411039 Цитата:
http://www.sql.ru/forum/actualthread...id=1&tid=19780
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
||
![]() |