Представим, что есть некая программа,
защищенная "ключем активации",
зависящим от введенного имени. Вот
реализация этого на Си (для приведенного
примера необходимо использовать 32-ух
битный компилятор, любители Дельфи, сорри...).
Программа спрашивает имя и пароль,
проверяет его и говорит "правильно"
или "извиняй, дядя".
#include <stdio.h>
unsigned int me(unsigned int arg,int p,int n){
unsigned int r=1;
for(;p>=1;p--)r=(r*arg)%n;
return r;
}
void main(){
unsigned int e=35467,n=54031,pwd;
char name[256];
unsigned int hash,x;
printf("Name: ");scanf("%s",name);
printf("Password: ");scanf("%d",&pwd);
hash=0;
for(x=0;;x++){
if(name[x]==0)break;
hash+=name[x];
}
if(me(pwd,e,n)==hash)
printf("Correct!\n");
else printf("Sorry :(\n");
}
Задача: сделать генератор паролей -
программу, спрашивающую имя и вычисляющую
"правильный" пароль. Понятно, что
программа, определяющая пароль полным
перебором (он займет несколько часов) -
неспортивно :), есть гораздо более красивые
решения.
Вторая - для тех, кто предпочитает копаться
не в исходниках, а в сетях.
Даны хосты:
194.113.251.192
208.220.199.96
165.76.80.98
136.204.73.14
129.35.180.113
1. Чем они замечательны?
2. В чем причина?
Срок - опять до следующей пятницы.