Autor | Zpráva | ||
---|---|---|---|
valecekm Profil |
Dobrý den. Chtěl bych požádat zkušenější programátory jestli by nevěděli jak vyřešit danej problém:
Odeslanej text šifruji pomocí tohodle Odkaz , ale to tak že každej uživatel má svůj klíč. Proměnnou $key_crypt_decrypt sem předtím nastavil jako KONSTANTU, problém nebyl v tom když sem rozšifrovával zprávu od jednoho a toho samého uživatele, ale nastal tehdy když sem se snažil poté rozšifrovat zprávu jiného. Proč? Protože hodnota klíče je konstanta a tu nejde změnit a co uživatel to jinný klíč :-( . Rozšifrovávání probíha v cyklu. Potřeboval bych předtím než zavolám rozšifrování nějak do dané třídy napasovat jinou hodnotu promenné $key. Zkoušel jsem to i přes globální prom., ale to jaksi nešlo(doufam že jsem to nedělal špatně). S Objekt. programováním v PHP velké zkušenosti bohužel nemam :-( . Ukázka: <?php class Crypt_Zprava { private static $key = KEY_CRYPT_DECRYPT; /* atd. */ } /* bla bla bla atd. */ while($blabla = MySQL_Fetch_Array($query_blabla)): //definovana konstanta klice pro sifrovani a desifrovani zpravy $key_crypt_decrypt = "pokaždé jiný"; define("KEY_CRYPT_DECRYPT", $key_crypt_decrypt); $decrypted = Crypt_Zprava::decrypt($vzkaz); /* bla bla bla atd. */ endwhile; ?> Pokud by jste někdo veděl jak nato, aby se $key v dané třídě měnila budu moc rád když napíšete. Teď sem momentálně v bezvýchodné situaci. Díky |
||
retro Profil * |
#2 · Zasláno: 24. 11. 2009, 13:14:36
Jestli jsem správně pochopil:
Protože $key je statická vlastnost (Crypt_Zprava::$key), můžete jí nastavovat z toho cyklu. Kód uvnitř smyčky while potom bude něco jako : $key_crypt_decrypt = "pokaždé jiný"; Crypt_Zprava::$key = $key_crypt_decrypt; $decrypted = Crypt_Zprava::decrypt($vzkaz); |
||
retro Profil * |
#3 · Zasláno: 24. 11. 2009, 13:15:55
Ale $key potom musí být public. Nebo to udělat přes setter (public metoda, co to nastaví).
Kód pro public $key class Crypt_Zprava { public static $key = KEY_CRYPT_DECRYPT; /* atd. */ } |
||
valecekm Profil |
#4 · Zasláno: 24. 11. 2009, 13:19:27
retro:
Mockrát děkuji. Funguje teď už jak má. Ještě jednou dík ;-) |
||
Časová prodleva: 14 let
|
0