Модератор
|
|
1 | |
Алгоритм работы генератора паролей из псевдослучайных чисел04.12.2016, 21:36. Показов 1846. Ответов 10
Метки нет (Все метки)
Всем привет!
Глобально - создаю генератор паролей из псевдослучайных чисел. Прошу помощи в "разборе полётов", что и где я думаю "не так". Задача академического плана, в конечном работающем приложении воплощена будет вряд-ли. Просто хочу научиться "правильно мыслить". Итак, суть такая: 1. Вычислить Fn, где F - число ряда Фибоначчи, n - двузначное или трёхзначное порядковое число. 2. Перевести полученный результат в строку. 3. Перевести в шестнадцатиричный вид. 4. Откинуть первые 2 - 4 знака. 5. Сопоставить каждые последующие пары знаков символам ASCII 6. Отфильтровать спецсимволы, выбрать 6 - 24 первых подряд идущих букв и цифр в качестве результата. 7. Выдать результат, очистить память. Перед запуском программа должна выдавать запрос на необходимую длину пароля. Добавлено через 3 минуты Я прошу объяснений что за чем выполнять. То есть, порядок действий. И как вычислить быстрее и проще.
0
|
04.12.2016, 21:36 | |
Ответы с готовыми решениями:
10
Разбор генератора псевдослучайных чисел Реализация генератора псевдослучайных чисел Проверка качества генератора псевдослучайных чисел Проверка качества генератора псевдослучайных чисел |
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|
05.12.2016, 00:32 | 2 |
Обычно делаю так
1. Беру массив символов, сортирую его в случайном порядке 2. Нужный по длине срез массива перевожу в строку
1
|
05.12.2016, 01:37 | 3 |
Чем плохи стандартные схемы - криптохэш от парольной фразы / случайных данных?
Криптостойкость 1000-кратного хеширования пароля blake2(Чем плохи стандартные схемы - криптохэш от парольной фразы / случайных данных? Криптостойкость 1000-кратного хеширования пароля) = ce1ab5667aae081a782c75520ba762c6bbef431ea28b7f7af68cd992d2be9b4cc29140fa82d2ad64 eab3720f391fe8df48d399cb2212a64e99295fafd1f5e819
1
|
05.12.2016, 06:52 | 5 |
Угу. В "Искусстве программирования" Кнут излагает (немыслимо сложный) "Алгоритм K" - "Супергенератор случайных чисел".
Д. Э. Кнут: Искусство Программирования. Том 2 Получисленные алгоритмы
Суть не в изобретении экзотических преобразований, а в доказательстве их корректности. Для "стандартных" криптоалгоритмов такие доказательства получены (или, по крайней мере, не опровергнуты). Для homemade "супергенераторов" весьма вероятна судьба "Алгоритма K". Не по теме: Пример на сходную тему: "Junk Stream Cipher" - посмотрите Intro.
1
|
Модератор
3051 / 2193 / 459
Регистрация: 26.03.2015
Сообщений: 8,470
|
|
05.12.2016, 08:42 | 6 |
Как Вы собираетесь выбирать n? Почему Вы решили, что цифры в числах Фибоначчи "случайные" (удовлетворяют соответствующим критериям)?
0
|
Модератор
|
|
05.12.2016, 15:43 [ТС] | 7 |
взять две или три из рандома
Они не могут быть случайными - это так же неслучайно, как и последовательность цифр в числах или e, но я ещё в заголовке отметил, что мы берём псевдослучайное число для дальнейшей обработки. Давайте разберёмся для начала, как наиболее оптимально вычислить Fn, а потом пойдём дальше.
0
|
Модератор
3051 / 2193 / 459
Регистрация: 26.03.2015
Сообщений: 8,470
|
|
05.12.2016, 17:31 | 8 |
"случайные" в смысле "равномерные" (поэтому я взял это слово в кавычки... чтобы не детализировать условия).
Предположим, что в числах Фибоначчи встречаются только цифры 1 и 2... или цифры 1 и 2 встречаются в 100 раз чаще остальных... или после 5 в половине случаев идёт 8... Какого качества пароли будут выдавать Ваш алгоритм?
0
|
Модератор
|
|
05.12.2016, 19:14 [ТС] | 9 |
Это неважно. Эти пароли нигде применяться точно не будут.
Мне нужно просто оптимизировать данный алгоритм, разобрать его "на косточки". Задача вообще академического плана. То есть, нужно просто разобраться. Конечный результат не в создании готовой программы, а в том, чтобы я понял, как это всё работает. Как оптимально вычислить Fn?
0
|
05.12.2016, 20:43 | 10 |
Волшебным экспоненциальным алгоритмом, который базируется на возведении матриц в степень. Но если теорию лениво курить - можно погуглить готовые формулы / коды - например я на этом форуме несколько раз их постил.
Добавлено через 4 минуты Например числа Фибоначчи
1
|
Модератор
3051 / 2193 / 459
Регистрация: 26.03.2015
Сообщений: 8,470
|
|
05.12.2016, 23:45 | 11 |
Сообщение было отмечено NeoMatrix как решение
Решение
Пункт 2 лишний. Результат бесполезен для дальнейших вычислений, а времени перевод в строку в десятичной системе исчисления займёт больше, чем все остальные пункты вместе взятые.
Пункты 3 и 5 выглядят странно. Пункт 3 - превращаем цифры в символы. Пункт 5 - превращаем символы обратно в цифры. 1. Вычислить Fn (длинное число, как массив целых) 2. Организовать выдачу этого массива в виде последовательности байт. Далее использовать стандартные функции по работе с последовательностями: 4. Skip 5. Map 6. Filter и Take 7. Очистку памяти доверить компьютеру
1
|
05.12.2016, 23:45 | |
05.12.2016, 23:45 | |
Помогаю со студенческими работами здесь
11
Реализация генератора распределенных псевдослучайных чисел С помощью генератора псевдослучайных чисел образовать последовательность целых чисел в диапазоне от 140 до 220 (см) Вскрытие линейного конгруэнтного генератора псевдослучайных чисел Заполнить матрицу с помощью линейного конгруэнтного генератора псевдослучайных чисел с заданными параметрами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |