2011-09-30 23 views
0

程序的輸出是這樣嗎? ?文件處理:(現在試圖解密產生錯誤的結果,只有當)</p> <p>雖然正確的內容</p> <p></p> <p>偏偏這個錯誤:不尋常的讀取文件錯誤

[email protected] /opt/lampp/htdocs $ ./a.out 
Error reading password from BIO 
Error getting password 
Salted__�Yq\��v��u�&2�t���-� 

的程序代碼是這樣的 -

#include <stdio.h> 
#include <stdint.h> 

void crypto(uint8_t *key, uint32_t keylen, uint8_t *data, uint32_t datalen); 

int main() { 

    uint8_t icv[10]="uditgupta"; 

    uint8_t ekey[14]="1234567891011"; 

    uint8_t *key=ekey; 

    uint8_t *data=icv; 

    crypto(ekey,13,icv,9); 


    return 0; 

    } 


    void crypto(uint8_t *key, uint32_t keylen,uint8_t *data, uint32_t datalen) 
    { 

    int ch,i; 
    uint8_t mydata[100],modata[100]; 
    uint8_t *p=mydata; 


    FILE *fp,*fq,*fr; 

    fp=fopen("key","w"); 
    fputs(key,fp); 
    fq=fopen("file.txt","w"); 
    fputs(data,fq); 

    memset(data,0,sizeof(data)); 

    system("sudo openssl enc -aes-256-cbc -salt -in file.txt 
-out file.enc -pass file:key"); 

fr=fopen("file.enc","r"); 

memset(mydata,0,sizeof(mydata)); 

i=0; 

while((ch=fgetc(fr)) != EOF) { 
      mydata[i]=ch; 
      i++; 
} 

i=0; 

puts(p); 

} 

我想我需要改變文件的讀/寫模式,但不知道...請指引我的什麼我做錯了? ?

+0

看來OpenSSL是造成這個問題.... – Sadique

+0

@acme沒有它在另一個文件中單獨使用時工作正常...它肯定一些閱讀模式問題,因爲我瞭解它。 –

+0

@acme如果它對你來說似乎是一個公開的問題,那麼請給我一些建議......我是這個openssl事物的新手。 –

回答

0

在致電system之前,請試着沖洗或關閉fqfp。問題可能是剛剛寫入文件的數據在運行openssl命令時尚未刷新到磁盤。

相關問題