Titkositott jelszó helytelen megjelenitése konzolban
2014-01-05T01:13:53+01:00
2014-01-05T14:17:53+01:00
2022-07-19T04:46:44+02:00
ShadowMember
Hello
Valamiért a konzolban nekem így adja ki a titkosított jelszót:

K2Žt@Wó'íaixtAes

Eredetileg így kellene kinézzen:

U2FsdGVkX1+6+/cCTH4n3ZKwSEtJ5FxjN9RhEjkMI30=

Ez lenne a kód amivel megjelenítem:

aes_context ctx; WCHAR* in = L"teszteles"; WCHAR* out; WCHAR* key = L"0012a5d8aab12a01"; BYTE* buff = (BYTE*)malloc(16); BYTE* keyBuff = (BYTE*)malloc(32); memset(buff, 0, 16); memset(keyBuff, 0, 32); // allocating memory memcpy(buff, in, wcslen(in) * 2); memcpy(keyBuff, key, wcslen(key) * 2); aes_set_key(&ctx, keyBuff, 256); // enrypting aes_encrypt(&ctx, buff, buff); out = (WCHAR*)buff; //MessageBox(NULL, (WCHAR*)out, NULL, 0); // output: ________ gLogOut.Write(eLoading, "%s", (WCHAR*)out); free(buff); free(keyBuff);

Mi lehet a gond?
Mutasd a teljes hozzászólást!
Az "így kéne kinézzen" példád Base64 kódolású. Egy online Base64-dekóderrel ezt tudtam visszahozni belőle:
Salted__şű÷L~'ݒ°HKIä\c7Ôa9#}
(Nem tudom, mit fog kezdeni a spec. karakterekkel a prog.hu motor, de az elején a "Salted__" karaktersor elég világos, hogy plain text, a többi nyers bináris.)

Szóval ez alapján kérdéseim:
1. Honnan gondolod, hogy úgy kéne kinézzen a kimenet, ahogy te írtad? Valami példakód ilyen formátumban írta ki neked, vagy esetleg valami tutorial írta, hogy így "kell" kinéznie?
2. Ha eltekintünk egy pillanatra a kiírástól, maga az adat működik? Ha a kimenetet (nem a konzolra kiírt valamit, hanem az eredeti puffert) dekódolod a megfelelő kulcssal, visszakapod az eredeti bemenetet?
3. Ha az előző kérdésre a válasz igen, akkor fontos, hogy ez az adat plain text formában legyen, vagy csak tesztelés kedvéért íratod ki? Mert ha a plain text forma csak a teszt kedvéért kell, nem érdemes sok energiát rááldozni, hogy "szép" legyen.
Mutasd a teljes hozzászólást!

abcd