이것은 내 첫 번째 질문이므로 제게 뭔가 잘못했는지 말해주십시오 :).EVP_DecryptFinal에서 8 바이트가 누락되었습니다.
내 문제는 내가 바이너리 파일의 암호를 해독
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);
를 사용합니다. 파일은 248 바이트이지만 printf는 EVP가 240 바이트를 암호 해독했다는 사실만을 알려줍니다. keysigfilelength는 248이며 248 바이트를 암호 해독해야한다는 업데이트를 알려야합니다.
나는이 일이 왜 효과가 없는지 이해하지 못하고 나를 계몽 할 수 있다면 행복 할 것이다.
편집 : 난 그냥 명령
openssl enc -e -des-ecb -in test.txt -out test.bin -K 00a82b209cbeaf00
수동으로 파일을 암호화은 8 바이트 성장 : O를. 나는 그들이 어디에서 왔는지 아직도 모르지만 나는 내 프로그램에서 가지고있는 일반적인 오류가 이것에 의해 발생했다고 생각하지 않는다.
이 모든 문제의 맥락은 우리 대학의 정보 보안 과정입니다. 우리는 다른 알고리즘으로 비슷한 작업을했지만, 심지어 프로그램을 성공적으로 마친 사람조차도 프로그램의 문제가 어디인지 파악할 수 없었습니다.
전체 프로그램을 게시해도 괜찮습니까?
Windows에서 텍스트 모드로 파일을 열어 '\ r'이 제거 된 것과 같은 것이 아닌지 확인하십시오. –
http://pastebin.com/H3riQhm7 여기에 파일의 hexdump -C가 있습니다. 모든 일은 리눅스에서 행해졌습니다 – outsmartin
나는 그렇게 생각하지 않을 것이지만 확신하는 것이 더 낫다고 생각했습니다. –