Я создаю программу, которая принимает файл в качестве входных данных. & выводит дешифрованный пароль каждой строки. Файл содержит три строки зашифрованных паролей. Я уверен, что пароли дешифруются до четырех буквенных слов. Учитывая, что я создал char [] букв. У меня возникла проблема с чтением файла по строкам с использованием LOW LEVEL IO и помещением полученного пароля в новый файл. Любой & все советы приветствуются!Ошибка в программе Simple Simple Crypt
Вот мой код до сих пор:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#define BUFFER_SIZE 1024
int main(void)
{
int f = open("pass.txt", O_RDONLY);
if (f < 0)
return 0;
char buf[1024];
while (my_fgets(buf, sizeof(buf), f))
printf("%s\n", buf);
close(f);
const char *const pass = "$1$6gMKIopE$I.zkP2EvrXHDmApzYoV.B.";
char *result;
int ok;
char guess[] = {'a','a','a','a','\0'};
char ch1=guess[0], ch2=guess[1], ch3=guess[2], ch4=guess[3];
do{
for(ch1; ch1<='z';++ch1)
{
for(ch2='a';ch2<='z';++ch2)
{
for(ch3='a';ch3<='z';++ch3)
{
for(ch4='a';ch4<='z';++ch4)
{
result = crypt(guess, pass);
}
}
}
}
}while(strcmp(result, pass) != 0);
puts(guess);
return 0;
}
int my_fgets(char* buf, int len, int f)
{
for (int i = 0; i < len; i++,buf++)
{
int count = read(f, buf, 1);
if (!count || (buf[0] == '\n'))
{
buf[0] = 0;
return i;
}
}
return 0;
}
Текстовый файл:
$1$6gMKIopE$I.zkP2EvrXHDmApzYoV.B.
$1$pkMKIcvE$WQfqzTNmcQr7fqsNq7K2p0
$1$0lMKIuvE$7mOnlu6RZ/cUFRBidK7PK.
Вызывает ли эта проблема, что у вас есть какие-либо симптомы *? – WhozCraig