это чего у тебя запоролено? если Microsoft Word то
Advanced Office Password Recovery позволяет восстанавливать пароли либо обходить парольную защиту файлов и документов, созданных в продуктах семейства Microsoft Office всех версий. В данный момент поддерживаются версии с 2.0 по 2010 включительно. Программа поддерживает документы, созданные Microsoft Word , Excel, Access, Outlook, Project, Money, PowerPoint, Visio, Publisher, а также OneNote. Кроме перечисленного, программа позволяет получить доступ к исходным текстам VBA макросов, защищенных паролем.
Самый распространенный защиты файлов заключается в использовании числовых значений, полученных из пароля , как ключа для шифрования документа. В Microsoft Office (до Office XP) для шифрования документов Word использовался именно этот метод c 40-разрядным ключом взлома такой защиты заключается в подборе 40-разрядного цифрового ключа. Перебираются все возможные варианты, пока не будет найден подходящий. Раньше подобная защита считалась надежной, но при производительности современных компьютеров, подбор 40-разрядного ключа под силу даже среднему домашнему компьютеру за вполне реальное время.
Любая программа, использующая пароли, беззащитна перед утилитами, перебирающими все возможные варианты. Менее эффективны утилиты, пытающиеся подставить вместо пароля слова из собственного словаря. При использовании полного перебора взлом пароля остается только вопросом времени. Например, очень быстро подбираются пароли длиной 6-7 символов, в которых используются символы одного алфавита в одном регистре. Значительно сложнее дело обстоит со сложными паролями из большого количества символов, да еще и использующие все возможные символы, например, на подбор такого пароля уйдет очень много времени: 1L337Pa5sW0rD[].
begin var (cost, t, k) := (Arr(15, 70, 125, 230, 440), Arr(1, 5, 10, 20, 60), new integer[5]); var n := ReadInteger('n->'); for var i := 4 downto 0 do begin k[i] := n div t[i];n := n mod t[i]; end; if k[0] * cost[0] >= cost[1] then begin k[0] := 0;inc(k[1]); end; if k[0] * cost[0] + k[1] * cost[1] >= cost[2] then begin k[0] := 0;k[1] := 0;inc(k[2]); end; if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] >= cost[3] then begin k[0] := 0;k[1] := 0;k[2] := 0;inc(k[3]); end; if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] + k[3] * cost[3] >= cost[4] then begin k[0] := 0;k[1] := 0;k[2] := 0;k[3] := 0;inc(k[4]); end;
for var i := 0 to 4 do WritelnFormat('{0} билет(ов)- {1} штук(а)', t[i], k[i]); end.
это чего у тебя запоролено? если Microsoft Word то
Advanced Office Password Recovery позволяет восстанавливать пароли либо обходить парольную защиту файлов и документов, созданных в продуктах семейства Microsoft Office всех версий. В данный момент поддерживаются версии с 2.0 по 2010 включительно. Программа поддерживает документы, созданные Microsoft Word , Excel, Access, Outlook, Project, Money, PowerPoint, Visio, Publisher, а также OneNote. Кроме перечисленного, программа позволяет получить доступ к исходным текстам VBA макросов, защищенных паролем.
Самый распространенный защиты файлов заключается в использовании числовых значений, полученных из пароля , как ключа для шифрования документа. В Microsoft Office (до Office XP) для шифрования документов Word использовался именно этот метод c 40-разрядным ключом взлома такой защиты заключается в подборе 40-разрядного цифрового ключа. Перебираются все возможные варианты, пока не будет найден подходящий. Раньше подобная защита считалась надежной, но при производительности современных компьютеров, подбор 40-разрядного ключа под силу даже среднему домашнему компьютеру за вполне реальное время.
Любая программа, использующая пароли, беззащитна перед утилитами, перебирающими все возможные варианты. Менее эффективны утилиты, пытающиеся подставить вместо пароля слова из собственного словаря. При использовании полного перебора взлом пароля остается только вопросом времени. Например, очень быстро подбираются пароли длиной 6-7 символов, в которых используются символы одного алфавита в одном регистре. Значительно сложнее дело обстоит со сложными паролями из большого количества символов, да еще и использующие все возможные символы, например, на подбор такого пароля уйдет очень много времени: 1L337Pa5sW0rD[].
//Версия 3.3, сборка 1634 (14.02.2018)
begin
var (cost, t, k) := (Arr(15, 70, 125, 230, 440), Arr(1, 5, 10, 20, 60), new integer[5]);
var n := ReadInteger('n->');
for var i := 4 downto 0 do
begin
k[i] := n div t[i];n := n mod t[i];
end;
if k[0] * cost[0] >= cost[1] then begin k[0] := 0;inc(k[1]); end;
if k[0] * cost[0] + k[1] * cost[1] >= cost[2] then
begin
k[0] := 0;k[1] := 0;inc(k[2]);
end;
if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] >= cost[3] then
begin
k[0] := 0;k[1] := 0;k[2] := 0;inc(k[3]);
end;
if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] + k[3] * cost[3] >= cost[4] then
begin
k[0] := 0;k[1] := 0;k[2] := 0;k[3] := 0;inc(k[4]);
end;
for var i := 0 to 4 do WritelnFormat('{0} билет(ов)- {1} штук(а)', t[i], k[i]);
end.
Пример(1):
n-> 37
1 билет(ов)- 0 штук(а)
5 билет(ов)- 0 штук(а)
10 билет(ов)- 0 штук(а)
20 билет(ов)- 0 штук(а)
60 билет(ов)- 1 штук(а)
Пример(2):
n-> 35
1 билет(ов)- 0 штук(а)
5 билет(ов)- 1 штук(а)
10 билет(ов)- 1 штук(а)
20 билет(ов)- 1 штук(а)
60 билет(ов)- 0 штук(а)