![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Gershkovich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 8.2.2006 Репутация: 0 Всего: 2 |
Всем привет !
Мне нужно сгенерить пароль - строку из случайных символов (можно не печатных типо #0) На ум приходит тока такое:
Есть ли более элегантный способ ? И более "случайный" ? Зоранее спасибо. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
|
|||
|
||||
| Veitmen |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Добавлено @ 17:52 А вообще, как я понимаю, ф-ия рендом тебе вполне подойдет. И твой вариант вполне элегантен и вполне случаен.) Юзай. ) Это сообщение отредактировал(а) Veitmen - 26.1.2007, 17:46 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Просто нужно сделать Randomize и будет всё очень даже случайно |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Тогда нужно поискать другой генератор случайных чисел. Встроеный генератор, далек от совершенства. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Gershkovich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 8.2.2006 Репутация: 0 Всего: 2 |
Похоже что Random это то что надо.
Не буду выпендриваццо. Я просто думал, может в Делфи есть спец. функция... ну или там класс. Всем спасибо. |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 6 Всего: 121 |
Ну так, если немного идеализировать и углубиться, то ГПСЧ можно выразить следующей формулой:
Val = F(X,Y,Z,I); X - Cлучайный фактор, который не зависит от времени и конкретной машины. Например положение курсора, число тиков или загрузка ЦП. Y - Псевдо-случайный фактор, который зависит от машины. Например версия ОС или серийник винта. Z - Не случайный зависимый фактор. Дата, время, кол-во секунд прошедших с момента перезагрузки. I - любая константа. Вот, далее F должна всё это "перетасовать", причём каждая арифметическая операция не может быть использована более одного раза и использование противоположных операций тоже нежелательно. В итоге получим неплохой ГПСЧ. А для обычных, "домашних целей", сойдёт нечто вроде:
Это сообщение отредактировал(а) W4FhLF - 26.1.2007, 18:37 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Gershkovich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 8.2.2006 Репутация: 0 Всего: 2 |
W4FhLF, спасибо, код работает.
Я так понимаю что константы здесь
тожэ можно заменить какими-нить переменными типо Seed ?? |
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
Gershkovich, я бы не советовал, т.к. эти константы не с потолка взяты. На них все и стоит...
-------------------- ![]() |
|||
|
||||
| Gershkovich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 8.2.2006 Репутация: 0 Всего: 2 |
aktuba,
честно говоря думал што с потолка, поэтому и задал вопрос... :) А что эти констатнты обозначают ??? |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 6 Всего: 121 |
Gershkovich, какие именно? 5345435 и 333 можешь менять как хочешь.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
Добрый день.
Подскажите, переменную Seed как и где надо объявлять? Бо редактор ругается так Seed: Longint = 0; правильно будет? Это сообщение отредактировал(а) razumsap - 7.12.2009, 17:43 |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
К варианту со встроенным ГСЧ: правильней будет так
-------------------- Обижено школьников: 8 |
|||
|
||||
| razumsap |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
Каким образом вызвать данную функцию рандом от числа? В каком месте в этой функции нужно провести операцию (и собственно говоря какую?) чтоб рандом выдал числа от 0 до 37.
Это сообщение отредактировал(а) razumsap - 8.12.2009, 14:59 |
||||||
|
|||||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Чем эта функция лучше Rand? -------------------- |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |