Diskuze: Vytovření objektu v metodě nebo jako parametr - problém
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, tak jsem si to párkrát zkusil a přišel jsem na to. Problém je v tom, že když si
nějakou zprávu zakóduješ, tak se ti při každém vytvoření instance
SymmetricAlgorithm zakóduje do jiného pole encrypted nějakým vnitřním
systémem, který se vztahuje k tvojí konkrétní třídě alg. Nějaký
systém podle kterého se to uvnitř zpracuje je ve vlastnosti .IV (tahle
vlastnost se vždy náhodně generuje při vytvoření instance třídy
SymmetricAlgorithm ) a při dekódování je stejně tak potřeba jako .Key.
Takže v zakódování se ti používá nějaké vnitřní zakódování do
něčeho a při dekódování se použije zas něco úplně jiného na
dekódování, proto ti to dává špatné výsledky. Napadá mě teda
řešení, udělat si nějaké uložiště (třeba private proměnnou), kam si v
Encrypt() uložíš alg.IV a následně jí v metodě Decrypt přiřadíš k
nově vytvořené alg.IV, při tomto řešení není ani žádný problém s
vlastností .Padding, takže jí nemusíš přenastavovat. Teoreticky, by sis
ale mohl už raději udělat v té tvojí třídě cryptProvider udělat private
proměnnou SymmetricAlgorithm alg a v konstruktoru jí deklarovat, ale tak to
asi dost záleží i na tom, co s tím chceš dál dělat.
Zobrazeno 3 zpráv z 3.