войти зарегистрироваться

Информационная безопасностьКонцепция интернет-сервиса распределенного подбора паролей из песочницы

Общеизвестно, что несмотря на текущее развитие вычислительных мощностей и технологий их использования, задача полного перебора возможных значений пароля при известном хэше остается во многих случаях весьма ресурсоемкой (прежде всего по времени). Сложность задачи складывается из размера словаря и сложности хэш-алгоритма. Размер словаря в свою очередь зависит от числа слов в алфавите и максимальной и минимальной длины пароля. Курс комбинаторики нам подсказывает, что для алфавита длиной C символов и максимальной длины слова N размер словаря будет равен C^N. В то же время задача полного перебора хорошо распараллеливается и идея распределенного брутфорса хэшей не нова и даже имеет публичные реализации. Однако, мне до сих пор не встречался публичный сервис, имеющий широкий выбор хэш-алгоритмов, и построенный на идее краудсорсинга. Далее я кратко изложу концепцию подобного сервиса.

JavaScriptАрхитектура YASS. Часть 3: проблема выбора

Это третья статья из цикла, посвященного разбору практических методов, заложенных в основу YASS. Первая статья была про модульное построение, вторая — про логику выбора CSS-селектора и организацию циклов.

Условное ветвление



Начнем с наиболее очевидной составляющей любой логики: ветвления. В любом алгоритме встречается место, в котором нужно выбрать то или иное продолжение в зависимости от проверяемого условия. Давайте рассмотрим следующие примеры. В первом случае у нас три простых вложенных проверки:

var a = 1,
	b = 2,
	c = 3;
if(a == 1) {
	if (b == 2) {
		if (c == 3) {
			...
		}
	}
}