LINUX.ORG.RU

Зацените мой новый генератор паролей, совместимый с Wayland

 , ,


0

2

Потихоньку изучаю Раст и переписываю на нём различные старые поделки.

https://github.com/alexkh/passgen_rs

Скриншот на гитхабе. Не знаю как его сюда вставить.

Всем приятных выходных!

★★

Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

Не знал, что надо раскрывать тему унылости Qt. Да, Питон для неё не родной язык, но и C++ тоже. Они с самого начала делали целый фреймворк чтобы сперва сделать «Джаву в C++». Так что у Qt нет родного языка. И всегда были проблемы обновления компонентов в Линуксе, поэтому я много лет старался избегать устанавливать всё что на Qt особенно когда сидел в Дженту (лет 15 назад).

svyatozar ★★
() автор топика
Ответ на: комментарий от firkax

Он дан извне авторами алгоритма

Предположим, что ты используешь какой-то алгоритм где тебе потребовался качественный шум, например, для борьбы со статическим анализом (а это огромный класс алгоритмов или их частей, пусть и довольно наивных). А у тебя алгоритм, который генерирует шум даёт шум который хоть внешне и имеет признаки качественного шума, на самом деле имеет скрытые статические закономерности. Так вот, в зависимости от этих закономерностей и их свойств, а так же информации о них, которая может быть известной составителям ГПСЧ, статический анализ может и заработать. Или какой-то другой подход. Одна из проблем криптографии, что составителю ГПСЧ тоже нельзя доверять, даже если ты и он работаете в одной разведке, он может быть завербован иностранной. Или сам может иметь злой умысел.

Вот был бы у нас хороший алгоритм на P?NP то да, но его нет, через задачу рюкзака пробовали делать, но оно ломается легко, правда не гарантированно, а в большом проценте случаев. RSA та же петрушка - нет гарантий что нет алгоритма который зачастую будет ломать, пусть и без гарантий. А ещё есть квантовые компы, где некоторые NP задачи для классических компов в P переходят судя по всему. Вопрос какой процент таких задач и что входит в BQP что мы счтали NP, это пока открытый вопрос.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 8)
Ответ на: комментарий от ugoday

Надо понимать что аутизм - это целый спектр расстройств, и у всех линуксоидов он проявляется по-разному. И если Линус пишет письма в MicroEMACS - не файт что всем линуксоидам подходит такое решение.

svyatozar ★★
() автор топика
Ответ на: комментарий от svyatozar

старался избегать устанавливать всё что на Qt особенно когда сидел в Дженту

Поэтому и возникают темы, вроде этой. На QT без хлеба трудно остаться, потому что очень много выходцев из QT в итоге таки совершили виндософтовой капец в отдельно взятых отраслях. Ибо на QT не лозунги растовые пишут.

Govorilnik90
()
Ответ на: комментарий от Govorilnik90

А ты попробуй хороший калькулятор сделать не оборачивая какой-то bc, хотя и он плоховат если что. Тот ещё квест. Чтоб и переполнения и большие числа и точность вычислений в выражениях. Не веришь - сходи сорцы почитай и подумай, смог бы не читая это сделать сам. Я не стебусь если что. Точнее стебусь, но не так как тебе кажется.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от svyatozar

Что надо раскрывать тему унылости Qt.

Это и низвергнутый под коврик uTorrent, это и побежденный ослик (да, именно выходец из KDE и QT под названием webkit основал хром), это и VLC, через который в свое время тв-плейлисты смотрели…

А вот у гнома вышла за пределы пингвина разве что трансмиссия, и ту пытаются подвинуть.

Govorilnik90
()
Ответ на: комментарий от Govorilnik90

Видел я эти калькуляторы. Сам принимал у студентов. Давай проще - посчитай на разных калькуляторах с поддержкой выражений это выражение и посмотри что там получится:

12345678901234567 * 15/15

Иногда достаточно

12345678901234567*1

Но с первым вариантом всё совсем плохо. У питонистов на него ответ 12345678901234568 по традиции. Второй вариант больше сишников напрягает.

9223372036854775807+1

Ещё проверь

9223372036854775809+9223372036854775805

На 0 подели, но тут обычно исправляют. Пустой ввод проверь или какую-то абракадабру с буквами на входе (уже реже).

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 4)
Ответ на: комментарий от Govorilnik90

я делал калькулятор на С++, на Питоне. На Раст пока ещё не перенёс.

Вот эта версия на Питоне - это переделка моего более старого калькулятора на С++:

https://github.com/alexkh/kpcalc

svyatozar ★★
() автор топика
Ответ на: комментарий от Govorilnik90

я не знаю что там за «растовые лозунги», но Qt и KDE славились своими тормозами и глюками ещё в 90х. И я этого говна наелся уже очень давно. Наелся и забыл. Как поётся в песне:

«Всё, что было, всё, что ныло Всё давным-давно уплыло…»

svyatozar ★★
() автор топика
Последнее исправление: svyatozar (всего исправлений: 1)
Ответ на: комментарий от peregrine

А у тебя алгоритм, который генерирует шум даёт шум который хоть внешне и имеет признаки качественного шума, на самом деле имеет скрытые статические закономерности.

Это как раз то про что я писал - твой криптохэш взломали и он больше не может называться «крипто». И от этого будет ещё пачка других проблем, кроме понижения качества твоего рандома. А вот насколько от этого дефекта спасёт подсчёт энтропии - тоже вопрос дискуссионный. Так что это именно подстеливание на случай «а вдруг пригодится», никаких строгих обоснований к этому нет.

Про то что все асимметричные алгоритмы потенциально могут иметь обратные функции - ну да, и с этим ничего не поделать, почти вся криптография основывается на надежде что эти функции, даже если есть, врагам неизвестны.

firkax ★★★★★
()

Здесь ввели такое понятие как предсказуемый рандом. Допустим если первым числом выпало 1, то вторым числом обязательно выпадет 9, так как есть RandomSeed. Будучи не зная о других алгоритмах для такой задачи я бы в таком случае применил рандом рандомов. Если мы на старте проги рандомизируем диапазоны A-Z и вместо ABCD… получим GPRT… то есть делаем рандом от 1 до 26, получаем 5 и ставим в начало алфавита/последовательности «E» (ABCDE). В этом алгоритме на старте формируется другая последовательность и последующие рандомы с якобы с прогнозируемым движением уже становятся на порядок менее прогнозируемы. Да и зачем далеко ходить, можно сложить/перемножить несколько рандомов и предугадать возможные варианты будет невозможно. Хотя по мне так авторы алгоритма должны это внести в свой алгоритм самостоятельно. Хотя если цель «нормальное распределение» без цели устранить возможность предсказания и важна скорость, то могли не вносить.

AZJIO
()

Ну, такое.

Во-первых, разве use rand::Rng; криптографически стойкий генератор? Логичнее было бы что-то типа:

use rand::rngs::OsRng;

let mut rng = OsRng;

Так вы будете использовать getrandom крейт который решает эту проблему (если я правильно помню).

Во-вторых, в коде нет проверки присутствия всех выбранных типов в результате. Те указал пользователь все типы символов для генерации пароля, а ему чисто цифр отсыпало или букв.

Obezyan
()
Ответ на: комментарий от Dimez

Ну ты тоже молодец :)

Какая разница как писать команды, которые больше никогда не будут вызываться? Так удобнее смотреть на результат по мере написания команды.

Tanger ★★★★★
()

Задай количество чисел и количество знаков в пароле и соотношение заглавных к строчным. Например чисел от 2 до 5, знаков от 2 до 5, заглавных 50%. Запускаешь рандом для от 2 до 5, получаешь допустим 3, получаешь рандомно и цифры, например 3, 8, 9. Далее, если пароль из 16 символов, делаешь рандом позиций от 1 до 16 и в эти позиции вставляешь числа. Делаешь проверку, чтобы сумма чисел и знаков была в 2 раза меньше длины пароля, чтобы позволить ещё и буквы. Если больше, то просто убираешь лишнее, например если больше на 5 то убираешь 2 и 3 символа с обоих диапазонов. На остатки длины генерируешь буквы. Проверяешь, что нет дубликатов букв или идущих друг за другом, то есть ещё две галки добавляешь.

AZJIO
()
Ответ на: комментарий от Obezyan

Я пробовал OsRng. Там какие-то дополнительные зависимости. Вобщем, посчитал что это оверкил для повседневного использования.

Насчёт «в коде нет проверки присутствия всех выбранных типов в результате» меня учитель тоже ругал. Я дал ему уклончивый ответ (мысленно, конечно). Ну а при переписывании на Раст просто не было времени. И так часа 2 потратил (с помощью Gemini3)…

svyatozar ★★
() автор топика
Последнее исправление: svyatozar (всего исправлений: 1)
Ответ на: комментарий от paddlewan

Код - жуть, да

Когда делаешь чуть сложнее так всегда кажется.

Понимаю, что осваиваешь

Не понимаешь, я пишу на нём.

можно было бы сделать что-то поприличнее перед тем, как показывать, ага

За ваши деньги всё возможно, ага.

AZJIO
()

За генераторы паролей. А символы в паролях. За чередование больших и маленьких букв. За цифры вместо букв. За ограничение длины пароля. За всё это нужно отправлять на PHP кодить.

thegoldone ★★
()