Ищу библиотеку для построения и управление диапазонами, пока не начал писать сам такую.
С такой вот функциональностью:
1) задаем алфавит: a-z, 0-9 или даже такой такой: a,C,#,7,Y
2) задаем минимальную и максимальную длину значения из диапазона
3) библиотека должна позволять разбить все возможные сочетания / или сочетания без повторений на допустим n-диапазонов
4) позволять построить диапазоны по какой то маске:
допустим из того же алфавита a-z, 0-9 можно выделить часть символов в группу, допустим: [e,f,0,3] : GroupA
тогда маска будет выглядеть примерно так: GroupA * GroupA
— что означает диапазоны в которых первый и последний символ один из символов из GroupA а * -любые символы из заданного алфавита (оставшейся длинны)
5) библиотека должна поддерживать операции над значениями из диапазонов: +, -, ++, --
Во общем хотелось бы что то такое получить, если нет такой то как Я пока понимаю
это можно построить на библиотеках вроде big int.
Но велосипедостроением не хотелось бы заниматься лишний раз.
Спасибо.
Здравствуйте, nen777w, Вы писали:
N>Ищу библиотеку для построения и управление диапазонами, пока не начал писать сам такую. N>С такой вот функциональностью:
N>1) задаем алфавит: a-z, 0-9 или даже такой такой: a,C,#,7,Y N>2) задаем минимальную и максимальную длину значения из диапазона N>3) библиотека должна позволять разбить все возможные сочетания / или сочетания без повторений на допустим n-диапазонов N>4) позволять построить диапазоны по какой то маске: N> допустим из того же алфавита a-z, 0-9 можно выделить часть символов в группу, допустим: [e,f,0,3] : GroupA N> тогда маска будет выглядеть примерно так: GroupA * GroupA N> — что означает диапазоны в которых первый и последний символ один из символов из GroupA а * -любые символы из заданного алфавита (оставшейся длинны) N>5) библиотека должна поддерживать операции над значениями из диапазонов: +, -, ++, --
N>Во общем хотелось бы что то такое получить, если нет такой то как Я пока понимаю N>это можно построить на библиотеках вроде big int. N>Но велосипедостроением не хотелось бы заниматься лишний раз. N>Спасибо.
Возможно, вам подойдут регулярные выражения (boost.regex).
Хотя мне не до конца понятны некоторые из перечисленных требований.
SEV>Возможно, вам подойдут регулярные выражения (boost.regex).
не SEV>Хотя мне не до конца понятны некоторые из перечисленных требований.
Во общем, человеческим языком, это все дело нужно для параллельного грубого взлома паролей.
Думаю так понятней будет.
Когда есть информация о части пароля, например известно что первые два и последний символ в пароле может быть только из какой то группы, а в середине после символа номер-N допустим гарантированно не встречаются символы из такой то группы то надо всевозможные варианты ограничивать именно этими условиями.
Ну и конечно же это надо правильно делить на диапазоны что бы иметь возможность параллельного подбора.