Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Tolik rozruchu
jen v Lopuchu

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub C, C++ [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv

Články

Jak bezpečně ukončit vlákno z DllMain
FastAllocPool - urychlení častých alokací a dealokací
Akce a zpráva jako objekt
Tuply v C++
Efektivní alokátor malých objektů a tady druhý a třetí díl
Šablony: Být vládce kvalifikátorů
Vracíme z funkce objekty
Základy komunikace mezi procesy (ve Windows)
Multiple Interface a Instance Factory
Multithreading v C++ (ve Win32)
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: oogmfkx
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
bredy 30.7.2012 09:44  874
Často to používám z toho důvodu, abych skryl implementrační detaily v hlavičkách. Například pokud třída potřebuje nějaké další třídy, které nejsou potřeba pro ovládání té třídy (jsou potřeba jen pro její konstrukci), pak používám interface + implementace + továrnu.

interface definuje funkce, kterým lze objekt ovládat, implementace dědí interface a obsahuje vše, co je potřeba k zajištění činnosti objektu a továrna se stará o to, aby se dal objekt instanciovat bez nutnosti mít naincludované všechny definice pro přeložení třídy.
sekory Sekory The journey of thousand miles - starts with a single step. 18.7.2012 20:58  873
huh: Přesně tak, abstraktní bez implementace. Trochu mi to příjde jako interface v Javě (Javu teda moc neznám...). Každopádně díky.
huh huh 18.7.2012 20:31  872
Sekory [871]: Myslíš čistě virtuální (abstraktní), tj. bez implementace? Tak snad leda, pokud by mělo smysl vytvářet i jiné potomky, byť zatím má jen jednoho. (Druhá možnost je overengineering :-) )
sekory Sekory The journey of thousand miles - starts with a single step. 18.7.2012 18:46  871
K čemu se používá base class, která má všechny metody virtuální, pokud z dění jen jedna další třída, která ty metody implementuje? Nevidím k tomu důvod, ale narazil jsem na to.
sekory Sekory The journey of thousand miles - starts with a single step. 25.6.2012 13:58  870
Tak jsem se rozhodl, že budu používat Eclipse. Už jsem v tom něco malého dělal (v Javě teda) a případně to má člověk i pod Windowsi.
sekory Sekory The journey of thousand miles - starts with a single step. 24.6.2012 21:19  869
C++ IDE pod LinuxemJaké IDE na C++ byste doporučili pod Linux? Existuje toho celkem dost, což rozhodování moc neulehčí. Psát to v nějakém Editoru a pak to kompilovat z příkazové řádky se mi zdá poněkud nevyhovující (ačkoli určitě to má svoje výhody).
bredy 29.3.2012 11:14  867
huhJá jsem taky mimo. Mě jen děsíc výčet featur, které tam mají. Pro ně je to samozřejmě jednoduší, protože spousta šifer má společný základ. Ale i beztak z toho vzniká moloch a nafukuje to kód.

Nicméně se na to podívám. O Crypto++ jsem už taky zavadil.
huh huh 29.3.2012 01:49  866
Bredy [858]: Už je asi pozdě, nicméně jsem narazil na LibTomCrypt, což by to mohlo umět. Jinak teda taky třeba Crypto++. Přiznávám se, že téhle oblasti vůbec nerozumím, takže pokud jsem mimo, tak se omlouvám.
bredy 6.3.2012 11:01  865
No na tomhle řešení jsou trošku problém dva posuny. On ten posun nemusí být na CPU implementovan zrovna pomocí multiplexu, ale n x posouvání shiftregistru (trvající n taktů). Tak jsem se snažil tam mít minimum posuvů, víceméně jen na výpočet masky. Ale je fakt, že tohle je jedno z řešení. Nicméně, lze to udelat s jednim shiftem, a exustujou dvě varianty.
king King Born to be king - ... 6.3.2012 10:54  863
Prox by clovek musel zapomenout na pouziti OR a AND pro nastaveni/vymazani?

reseni v pythonu:

def set_bit(n, pos, val):
return (0b11111111 ^ 1 << pos) & n | val << pos)
bredy 6.3.2012 09:54  862
Kvíz pro začátečníkyNapište funkci

int setBit(int n, int bit, int val)


co nejjednodušší bez použití IFu ani jiného rozhodování.
n = vstupní číslo
bit = pozice bitu
val = hodnota bitu
vrací výsledné číslo.

Dá se v pohodě, ale člověk musí zapomenout na klasický postup použití OR pro nastavení a AND pro vymazání. Nicméně superskalární procesor vám poděkuje.
gumysh 12.2.2012 16:57  861
Tuším, že existuje i light verze, která obsahuje jen nutné minimum. Ale i kdyby, tak příslušné knihovny, o které zrovna tobě jde, mají cca 1 MB, což je stále ještě rozumné.

OpenSSL jsem navrhnul proto, že je to osvědčená, používaná a navíc portabilní knihovna… no a navíc jsem se s ní nedávno nepřímo potkal ;o) Ale jen (velmi) nepřímo, jelikož to není zrovna moje pracovní náplň; nicméně její crypto API (dle http://www.openssl.org/docs/crypto/crypto.html) vypadá, že obsahuje vše, co bys mohl chtít… I když pravda, ty své dvě vysněné funkce by sis musel z toho poskládat.

Pokud narazíš na něco jednoduššího a stejně dobrého, pochlub se svým objevem.
bredy 31.1.2012 21:31  860
GumyshNo nevím, celá knihovna má zabalená 6MB a obsahuje několik desítek sifrovacích technik a hashovacích funkcí. Pořád si myslím, že někdo musel nad tím napsat nějakou jednoduchou nadstavbu. Nemám bohužel čas to zkoumat a testovat a ladit. Chtěl jsem jen jednoduše podepsat textový soubor tak, aby si desktopová aplikace ověřila, že je pravý a nezměněný, přičemž veřejný klíč bude napsán uvnitř binárky té aplikace (protože se dá extrahovat, nemohu použít jen tak nějaký salt k hashovací funkci).

Celá aplikace má cca 2MB. Přijde mi hloupé kvůli tomu instalovat XMB sdílených knihoven proto, abych si něco elektronicky podepsal.
gumysh 31.1.2012 17:52  859
OpenSSL by nevyhovovalo?
bredy 30.1.2012 10:47  858
Digitální podpis jednodušeZdar, hledám nějakou C/C++ knihovny pro _JEDNODUCHOU_ realizaci digitálního podpisu. Nechci žádnou knihovnu s tisíci a jednou funkcionalitou, ani žádný moloch mající po instalaci několik desítek megabajtů.

Má představa je, že tam budou hlavně tyto funkce
String signMessage(String message, String privateKey);
bool verifySign(String message, String sign, String publicKey);

a případně
void createKeyPair(String &privateKey, String &publicKey, [void *randomData....]);

Jde o proprietální software, není třeba, aby private a public key byly v nějakém ISO nebo IEEE, nebo whatever formatu. Pokud by to tam bylo, je to bonus navíc, ušetřil bych si nutnost generovat klíče mým softem, ale není to podmínkou. Klidně si ten program, co zavolá výše uvedenou funkci napíšu a budu jí distribuovat spolu s aplikací.

[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt