0
나는이 problem에서 작업했습니다. "hello there"와 같이 암호화 된 작은 구문을 해독하려고하면 코드가 작동하지만 주어진 암호 텍스트에서는 작동하지 않습니다. 나는 openssl에 익숙하지 않고 무엇이 잘못되었는지를 알 수 없다.가끔씩 openssl 암호 해독이 작동합니다.
int main()
{
int i, j, k, ret, m;
char pwd[4];
char lower_alphabet[26] = "abcdefghijklmnopqrstuvwxyz";
for (i=0; i<26; i++)
{
for(j=0; j<26; j++)
{
for(k=0; k<26; k++)
{
char cmd[70] = "openssl enc -aes128 -base64 -d -in cipher.enc -pass pass:";
snprintf(pwd, sizeof(pwd), "%c%c%c", lower_alphabet[i], lower_alphabet[j], lower_alphabet[k]);
strncat (cmd, pwd, 3);
if ((ret = system(cmd)) == 0)
{
printf("\n%s\n",pwd);
scanf ("%d", &m);
}
}
}
}
}
그래서 내 코드는 가능한 모든 암호 값을 시도하고 openssl이 성공적으로 종료 될 때마다 사용자 입력을 위해 중지합니다.
"openssl return zero는 충분한 조건이 아닙니다."- 오른쪽. 진실로 말할 수있는 유일한 방법은 암호화 텍스트와 인증 태그를 사용하는 것입니다. iv. 패딩이 정확했기 때문에 오탐 (false positive)을 보았습니다. 약한 확인이었습니다 (Padding Oracles FTW!). – jww