簡體   English   中英

使用crypt函數時C中的分段錯誤

[英]Segmentation Fault in C while using crypt function

我剛開始使用CI進行編程,試圖制作一個簡單的密碼破解程序,但是當我嘗試運行它時,我得到了Segmentation Fault作為錯誤。 有人可以解決這個問題嗎? 提前致謝。

#define _XOPEN_SOURCE
#include<stdio.h>
#include<crypt.h>
#include<unistd.h>
#include<string.h>

int main(int argc, char *argv[])
{
    if(argc != 3)
    {
        printf("Usage: ./craken salt hash\n");
        return 0;       
    }


    FILE *fPointer;
    fPointer = fopen("wordlist.txt", "r");

    char singleLine[150];
    while(fgets(singleLine, 150, fPointer) != NULL)
    {   
        if(!strcmp(argv[2], crypt(singleLine, argv[1])))
       {
            printf("Password found! %s is the password\n", singleLine);
            fclose(fPointer);
            return 0;
       }
    }
    printf("Not found\n");
    fclose(fPointer);
    return 0;
} 

我想問題是,如果您從文件中讀出可能的密碼,則末尾會有換行符。 據我了解,crypt()函數只能處理可能導致返回NULL指針的[a-zA-Z0-9./](crypt 手冊頁 )集。 然后,此NULL指針會導致strcmp()函數內部出現分段錯誤。 因此,請嘗試在每個輸入行的末尾刪除該換行符。 希望這行得通

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM