>Здравствуйте!
>PS линковать следует с crypt
ага, спасибо что напомнил.
вообщем выглядеть это должно приблизительно так ;-)))
ну а твои ошибки, я разбирать небуду, мне своих хватает.
#include <stdio.h>
#include <string.h>
#include <crypt.h>void make_bit_pattern(char* src, char* dest)
{
int i, j;
char t_ch;
for(i = 0; i < 8; i++) {
t_ch = src[i];
for(j=7; j >= 0; j--) {
dest[i*8+j] = t_ch & 0x01;
t_ch = t_ch>>1;
}
}
}
void make_str_from_pattern(char* src, char* dest)
{
int i, j;
char t_ch, s_ch;
for(i = 0; i < 8; i++) {
t_ch = 0;
for(j=0; j < 8; j++) {
t_ch = t_ch<<1;
s_ch = src[i*8+j] & 0x01;
t_ch = s_ch | t_ch;
}
dest[i] = t_ch;
}
dest[8] = '\0';
}
void print_bit_pattern(char* txt)
{
int p;
p = 0;
while(p != 64)
printf("%d ", txt[p++]);
}
int main(void)
{
char txt[64];
char key[64];
char rkey[64];
char rtxt[64];
char dtxt[9];
char dkey[9];
int p = 0, n = 0;
memset(key, 0, 64);
memset(txt, 0, 64);
strcpy(txt, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
strcpy(key, "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq123qqqqqq");
make_bit_pattern(key, rkey);
make_bit_pattern(txt, rtxt);
printf("txt:\n");
print_bit_pattern(rtxt);
make_str_from_pattern(rtxt,dtxt);
printf("\ntxt: %s\n", dtxt);
setkey(rkey);
printf("\nKEY:\n");
print_bit_pattern(rkey);
make_str_from_pattern(rkey,dkey);
printf("key: %s\n", dkey);
encrypt(rtxt, 0); /* encode */
printf("\nafter encode\n");
// printf("txt = %s\n", txt);
print_bit_pattern(rtxt);
make_str_from_pattern(rtxt,dtxt);
printf("txt: %s\n", dtxt);
encrypt(rtxt, 1); /* decode */
printf("\nafter decode\n");
print_bit_pattern(rtxt);
make_str_from_pattern(rtxt,dtxt);
printf("txt: %s\n", dtxt);
// printf("txt = %s\n", txt);
printf("\n");
}
ну и естественно всю твою строку я не кодировал, кодируется по 8 байт.