imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 26.03.2007, 18:50     # 1
Crimson
Junior Member
 
Регистрация: 01.10.2004
Сообщения: 54

Crimson Мелкий засранец
Генератор случайных чисел на C++, C#

Подскажите, как можно генерировать случайные символы (числа) на C++, C#.

Причём набор символов задан изначально в программе, т.е. генерация происходит из определенного набора чисел, которые заданы изначально. Всё это работает и сохраняется в базе MSSQL, в таблице с такими например полями:

nomer(ID), login, pwd, comment

Т.е. это просто программа генерации и хранения паролей. Пользователь набирает login и comment и нажимает на "сгенерить". В поле pwd появляется сгенерированный случайный набор символов (пароль). И чтобы это всё хранилось в базе MSSQL, а не в текстовом файле.
Crimson вне форума  
Старый 26.03.2007, 22:57     # 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)];
}
ЕЖ вне форума  
Старый 26.03.2007, 23:51     # 3
PinGUIWin
Junior Member
 
Аватар для PinGUIWin
 
Регистрация: 08.11.2006
Адрес: Quantizer
Сообщения: 67

PinGUIWin Путь к славе только начался
Я не хочу обижать, но люди прослушавшие курс криптографии должны знать, что такой способ плох. А увидев реализацию скажут, что автор не знает, что такое пара случайное число и крипто-стойкий пароль.
С другой стороны, когда секреты не очень важны, то такой способ пойдет, предварительно расширив его на:
1. Цифры
2. Буквы различных регистров.
3. Знаки препинания.

А если интересно -- то генерацию случайных чисел можно найти в "Исскустве Программирования" Дональда Кнута, а почему этого нельзя -- делать для генерации паролей в красной "книге криптографии=)" Брюса Шнайера.
__________________
Matrix has you...

Последний раз редактировалось PinGUIWin; 27.03.2007 в 01:17. Причина: очепятки
PinGUIWin вне форума  
Старый 27.03.2007, 01:00     # 4
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
PinGUIWin, обиды тут не причем, я совершенно согласен с отмеченными аспектами, но судя по заданному вопросу, тут и не требовалось большего, чем элементарный шаблон, что я привел.
ЕЖ вне форума  
Старый 29.03.2007, 13:16     # 5
Crimson
Junior Member
 
Регистрация: 01.10.2004
Сообщения: 54

Crimson Мелкий засранец
Всё отлично сработало. Спасибо. Расширил массив до цифр и букв разного регистра. А какая вероятность, что сгенерированные пароли совпадут? И можно ли ещё каким-нибудь простым способом увеличить "криптостойкость" ?

Или например если преобразовывать строку ГГГГ/мм/дд случайным образом в строку символов - это может сойти за более "криптостойкий" пароль и за более большую вероятность ""?

И такой вопрос: как можно сделать, чтобы можно было исключать необходимые символы из набора символов. Например 0 О и т.д. Но не просто удалив их из кода, а в новом textBox'e вводить такие символы и они, соответственно не генерятся.

Последний раз редактировалось Crimson; 29.03.2007 в 13:53.
Crimson вне форума  
Старый 29.03.2007, 22:59     # 6
PinGUIWin
Junior Member
 
Аватар для PinGUIWin
 
Регистрация: 08.11.2006
Адрес: Quantizer
Сообщения: 67

PinGUIWin Путь к славе только начался
Тогда уж лучше не дату, в время в миллисекундах пропустить через хеш (читай, преобразовать в строку) и сконкатенировать/перемешать с паролем.
А про втрое -- честно не знаю, как это можно реализовать на C#. Но на C++ я бы перехватывал сообщения textBox и проверял каждый символ.

PS. А датчик случайных чисел инициализируется?
__________________
Matrix has you...
PinGUIWin вне форума  
Старый 10.05.2007, 21:00     # 7
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Сообщение от Crimson Посмотреть сообщение
В поле pwd появляется сгенерированный случайный набор символов (пароль). И чтобы это всё хранилось в базе MSSQL, а не в текстовом файле.
Может тогда и генерить на MSSQL?

http://www.sql.ru/forum/actualthread.aspx?tid=411039
Цитата:
Сообщение от PinGUIWin Посмотреть сообщение
Я не хочу обижать, но люди прослушавшие курс криптографии должны знать, что такой способ плох. А увидев реализацию скажут, что автор не знает, что такое пара случайное число и крипто-стойкий пароль.
Ну можно и используя Windows CryptoAPI расширенные процедурки применить:
http://www.sql.ru/forum/actualthread...id=1&tid=19780
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 01:45.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.