Diskuze: Vytovření objektu v metodě nebo jako parametr - problém
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.