- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
#include <stdio.h>
#include <conio.h>
#include <condefs.h>
int main() {
char str[]="любой текст";
int i=0;
while (str[i]!='\0') {
printf("%c", str[i++]^100);
if (str[i]=='\0') break;
printf("%c", str[i++]|10);
if (str[i]=='\0') break;
printf("%c", str[i++]&400);
if (str[i]=='\0') break;
}
printf("\n");
getch();
return 0;
}
Наверное, был бы просто выведен str[];
>int
INT_MAX
int r = rand();
if (r < 0) r = -r;
return 1 + r%max;
}
да, обратимое шифрование....
хэширование - одностороннее преобразование к меньшему множеству именно с целью затруднить восстановление, для создания котрольных сумм, цифровых подписей и пр.
в общем, это все знает КО, я только акцентирую различия
Криптографическое хэширование как раз требует однонаправленности и низкого числа коллизий.
Например, CRC32 - пример функции с большим числом коллизий, является однонаправленной, но может быть использована только для создания контрольных сумм, но не подписей.
И это всё также вполне очевидные сведения.
а я и забыл )
Хотя и её можно решить с помощью libastral
!