đây là câu hỏi đầu tiên của tôi vì vậy hãy cho tôi biết nếu tôi làm điều gì đó sai :).8 byte mất tích trên EVP_DecryptFinal
Vấn đề của tôi là tôi sử dụng
EVP_DecryptInit(&ctx1, EVP_des_ecb(), tmpkey, NULL);
EVP_DecryptUpdate(&ctx1, keysigout, &outlu ,keysigin, keysigfilelength);
EVP_DecryptFinal(&ctx1, keysigout, &outlf);
printf("DECLEN:%i",outlu + outlf);
để giải mã một tập tin nhị phân. Tệp dài 248 byte nhưng printf chỉ cho tôi biết EVP đã giải mã 240 byte. keysigfilelength là 248 và nên thông báo cập nhật 248 byte cần được giải mã.
Tôi không hiểu tại sao điều này không hoạt động và sẽ rất vui nếu bạn có thể khai sáng cho tôi.
Edit: Tôi chỉ mã hóa một tập tin bằng tay với lệnh
openssl enc -e -des-ecb -in test.txt -out test.bin -K 00a82b209cbeaf00
và nó tăng 8 byte: O. Tôi vẫn không biết họ đến từ đâu nhưng tôi không nghĩ rằng lỗi chung tôi có trong chương trình của mình là do điều này.
Ngữ cảnh của toàn bộ vấn đề này là khóa học bảo mật thông tin tại trường đại học của tôi. Chúng tôi có các nhiệm vụ tương tự với các thuật toán khác nhau, nhưng ngay cả những người đã thực hiện chương trình của mình thành công không thể tìm ra vấn đề trong chương trình của tôi là gì.
Tôi có muốn đăng toàn bộ chương trình cho bạn không?
Để đảm bảo, nó không giống như trên Windows và mở tệp ở chế độ văn bản để '\ r bị xóa? –
http://pastebin.com/H3riQhm7 đây là tệp hexdump -C của tệp. tất cả các công việc được thực hiện trong linux – outsmartin
Tôi nghĩ rằng nó sẽ không được rằng, nhưng tốt hơn để chắc chắn. –