RE: Sifrovani ukladaneho souboru
Diky vsem. Problem vyresen hlavne diky uzivateli konference ,EHP'. Problem byl v tom, ze je potreba explicitne uzavrit pouzite Streamy. Mel jsem za to, ze metody store() a storeToXML() po sobe všechny Streamy zavrou, proto me ani nenapadlo hledat pricinu v tomto. Diky Lukas Adamek _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lukas Adamek | Fayn Telecommunications s.r.o. Sent: Saturday, February 17, 2007 4:30 PM To: konference@java.cz Subject: FW: Sifrovani ukladaneho souboru Tak jsem zkusil i sifru AES a problem pretrvava. At properties ukladam metodou store(), nebo storeToXML() vždy dojde k uriznuti a zahozeni nekolika poslednich znaku. To ma za nasledek, ze v pripade storeToXML() nejde soubor po ulozeni nacist vůbec, protože XML ma porusenou strukturu, v pripade store() to sice soubor nahraje, ale poslední property je zkracena, cili chybna. Nevim, jestli mam vinit Properties.store(), CipherInputStream a CipherOutputStream, nebo spolecnou kombinaci těchto 2 trid. _ From: Lukas Adamek | Fayn Telecommunications s.r.o. [mailto:[EMAIL PROTECTED] Sent: Saturday, February 17, 2007 12:44 PM To: 'konference@java.cz' Subject: Sifrovani ukladaneho souboru Dobry den Trochu si ted hraju s sifrovanim a narazil jsem na jeden problem: Mam instanci Properties, kterou pomoci metody store() ukladam do souboru. Dale mam metody pro sifrovani a desifrovani pomoci DESu, ktere de/sifruji vstupni/vystupni proud. Problem je, ze pokud Properties zasifruji, ulozim a zpetne nahraji a desifruji, tak se ztrati konec. S sifrovanim teprve zacinam, poradite mi kde delam chybu? Takhle vypada vysledny desifrovany soubor: - #Sat Feb 17 12:10:29 CET 2007 aa=aa b - Jak je videt, část zaznamu u konce uplne chybi Zde uvadim, priklady zdrojaku: Cast vytvoreni a nahrani properties: - Properties properties = new Properties(); properties.setProperty("aa","aa"); properties.setProperty("bb","bb"); File file = new File("soubor.txt"); if( !file.exists() ) { file.createNewFile(); } properties.store(DESCipher.encryptFile(file), null); try { properties.load(DESCipher.decryptFile(licenceFile)); } catch (IOException ex) {} Cela trida pro de/sifrovani: - public class DESCipher { private static byte[] iv = new byte[] { (byte) 0x8E, 0x12, 0x39, (byte) 0x9C, 0x07, 0x72, 0x6F, 0x5A }; public static OutputStream encryptFile(File inFile) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, FileNotFoundException, InvalidAlgorithmParameterException { AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, new Klic(), paramSpec); CipherOutputStream cos = new CipherOutputStream(new FileOutputStream(inFile), cipher); return cos; } public static InputStream decryptFile(File inFile) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, FileNotFoundException { AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, new Klic(), paramSpec); CipherInputStream cis = new CipherInputStream(new FileInputStream(inFile), cipher); return cis; } static class Klic implements Key { public String getFormat() { return "RAW"; }; public String getAlgorithm() { return "DES"; }; public byte[] getEncoded() { return byte[] r = { 0, 6, 12, 21, 48, 96, 48, 24 }; } }; }
Re: Jakou pouzit strukturu?
Na Unixech se to dela kolonou "sort | uniq -c |sort -n" :-) Ale jestli to musi byt v Jave, tak bych pouzil Hashmap tak jak mate pouzitou Hashtable, a *potom* bych z ni ziskal polozky a setridil je podle hodnot (nikoliv klicu), tj. HashMap mapa = ... ... atd tak jak to mate ... Set polozky = mapa.entrySet(); Map.Entry[] pole = polozky.toArray(new Map.Entry[polozky.size()]); Arrays.sort(pole, new Comparator>() { public int compare(Map.Entry e1, Map.Entry e2) { return e1.getValue().compareTo(e2.getValue())); } }); Makub BJ napsal(a): Dobry den Mam LOG soubor a ten chci analyzovat. Struktura: /var/www/xxx/stranka1.html /var/www/xxx/stranka2.html /var/www/xxx/stranka1.html /var/www/xxx/stranka1.html /var/www/xxx/stranka5.html ... A ja potrebuji abych ve vysledku zjistil ze: /var/www/xxx/stranka1.html - 3 /var/www/xxx/stranka2.html - 1 /var/www/xxx/stranka5.html - 1 Zkousel jsem laborovat s TreeSet a Hashtable. U Hashtable jsem se dostal az do naplneni ale nevim jak jednoduse projit tuto strukturu (nejlepe s volbou setrideni podle nazvu souboru (key), nebo poctem souboru (value). Kod na naplneni Hashtable vypada takhle: String line = ""; Hashtable set = new Hashtable (); while ((line = r.readLine()) != null) { if (line.trim().compareTo("") == 0) continue; if (set.containsKey(line)) { set.put(line, (Integer)set.get(line)+1); } else { set.put(line, 1); } } Napadla me cesta ze bych si vratil seznam klicu (set.keySet()) ale nejsem si jist zda se nedrbu pravou rukou za levym uchem a neresi to samotne trideni. Dik za rady ci pripadnou pomoc. BJ -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --
Re: rychly vyvoj webaplikace pro existujici DB strukturu
vladimír karásek napsal(a): Dobry den, stojime pred rozhodnutim jak se zachovat v nasledujici situaci. Mame 2 proekty, ktere jsou si dost podobne a nasledujici mozna prijdou. A jak veli "Do not repeat yourself" pravidlo, kdyz neco mas vis nez 2krat tak je na case s tim neco udelat. Pro existujici DB schema 30-40 tabulek vytvorit CRUD (create, read, update, delete) aplikaci s webovym rozhranim. Velice nas zaujal produkt Oracle Application Express, ktery to umoznuje udelat doopravdy velice rychle. Naklikate, jake tabulky pouzivate, jakou sablonu pouzit a par jinych detailu a aplikace je hotova. Zni to jako pohadka. Pro CRUD mi prijde idealni Ruby-on-Rails. Sice to neni Java, ale v JavaSE 6 je ted Scripting API, a s jeho implementaci pro JRuby muzete provozovat Ruby-on-Rails nad JVM. Zkousel jsem Ruby-on-Rails a pro CRUD operace to generuje aplikaci opravdu samo. Staci mit definovanou tabulku v databazi, a automagicky to z ni udela formular pro editaci, pridavani, mazani, i pomoci foreign keys i propojeni na jine tabulky. Nekde na tomhle blogu se dal najit WAR s JRuby i s Rails: http://headius.blogspot.com/2007/02/rails-support-status-update.html Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --
Re: FW: Sifrovani ukladaneho souboru
A neprichazite vzdy o pevny pocet bytu nebo o X kdy X je X=B-DELKA_SOUBORU a B je je pocet bloku? tj. nevyzaduji ty sifry vzdy pevny blok a je na Vas jak si rozpoznate skutecny konec? Jen tak odhaduju.
Re: FW: Sifrovani ukladaneho souboru
Dobry den, nepomohlo by zasifrovane retezce zakodovat pomoci base64? Bez tohoto prekodovani se Vam do souboru zapisuji i ne ASCII znaky, coz by mohlo zpusobit problem. S pozdravem Martin Rubes Lukas Adamek | Fayn Telecommunications s.r.o. napsal(a): > > Tak jsem zkusil i sifru AES a problem pretrvava. > > At properties ukladam metodou store(), nebo storeToXML() vždy dojde > k uriznuti a zahozeni nekolika poslednich znaku. > > To ma za nasledek, ze v pripade storeToXML() nejde soubor po ulozeni > nacist vůbec, protože XML ma porusenou strukturu, v pripade store() to > sice soubor nahraje, ale poslední property je zkracena, cili chybna. > > > > Nevim, jestli mam vinit Properties.store(), CipherInputStream a > CipherOutputStream, nebo spolecnou kombinaci těchto 2 trid. > > > > > > > > *From:* Lukas Adamek | Fayn Telecommunications s.r.o. > [mailto:[EMAIL PROTECTED] > *Sent:* Saturday, February 17, 2007 12:44 PM > *To:* 'konference@java.cz' > *Subject:* Sifrovani ukladaneho souboru > > > > Dobry den > > > > Trochu si ted hraju s sifrovanim a narazil jsem na jeden problem: > > Mam instanci Properties, kterou pomoci metody store() ukladam do > souboru. Dale mam metody pro sifrovani a desifrovani pomoci DESu, > ktere de/sifruji vstupni/vystupni proud. > > Problem je, ze pokud Properties zasifruji, ulozim a zpetne nahraji a > desifruji, tak se ztrati konec. > > > > > > S sifrovanim teprve zacinam, poradite mi kde delam chybu? > > > > > > Takhle vypada vysledny desifrovany soubor: > > - > > /#Sat Feb 17 12:10:29 CET 2007/ > > /aa=aa/ > > /b/ > > /-/ > > Jak je videt, část zaznamu u konce uplne chybi > > > > > > Zde uvadim, priklady zdrojaku: > > > > Cast vytvoreni a nahrani properties: > > - > > Properties properties = *new* *Properties*(); > > properties.*setProperty*("aa","aa"); > > properties.*setProperty*("bb","bb"); > > File file = *new* *File*("soubor.txt"); > > *if*( !file.*exists*() ) { > > file.*createNewFile*(); > > } > > properties.*store*(DESCipher./encryptFile/(file), *null*); > > > > *try* { > >properties.*load*(DESCipher./decryptFile/(licenceFile)); > > } *catch* (IOException ex) {} > > > > > > > > Cela trida pro de/sifrovani: > > - > > *public* *class* DESCipher { > > > >private static *byte*[] iv = *new* *byte*[] { (*byte*) 0x8E, > 0x12, 0x39, (*byte*) 0x9C, 0x07, 0x72, 0x6F, 0x5A }; > > > >*public* *static* OutputStream *encryptFile*(File inFile) > *throws* NoSuchAlgorithmException, NoSuchPaddingException, > >InvalidKeyException, FileNotFoundException, > InvalidAlgorithmParameterException { > > > > AlgorithmParameterSpec paramSpec = *new* *IvParameterSpec*(iv); > > Cipher cipher = Cipher./getInstance/("DES/CBC/PKCS5Padding"); > > cipher.*init*(Cipher./ENCRYPT_MODE/, *new* *Klic*(), > paramSpec); > > CipherOutputStream cos = *new* *CipherOutputStream*(*new* > *FileOutputStream*(inFile), cipher); > > *return* cos; > >} > > > > *public* *static* InputStream *decryptFile*(File inFile) *throws* > NoSuchAlgorithmException, NoSuchPaddingException, > InvalidKeyException, InvalidAlgorithmParameterException, > FileNotFoundException { > > > > AlgorithmParameterSpec paramSpec = *new* > *IvParameterSpec*(iv); > > Cipher cipher = Cipher./getInstance/("DES/CBC/PKCS5Padding"); > > cipher.*init*(Cipher./DECRYPT_MODE/, *new* *Klic*(), > paramSpec); > > CipherInputStream cis = *new* *CipherInputStream*(*new* > *FileInputStream*(inFile), cipher); > > *return* cis; > >} > > > >*static* *class* Klic *implements* Key { > > *public* String *getFormat*() { > > *return* "RAW"; > > }; > > > > *public* String *getAlgorithm*() { > > *return* "DES"; > > }; > > > > *public* *byte*[] *getEncoded*() { > > return *byte*[] r = { 0, 6, 12, 21, 48, 96, 48, 24 }; > > } > >}; > > } >
FW: Sifrovani ukladaneho souboru
Tak jsem zkusil i sifru AES a problem pretrvava. At properties ukladam metodou store(), nebo storeToXML() vždy dojde k uriznuti a zahozeni nekolika poslednich znaku. To ma za nasledek, ze v pripade storeToXML() nejde soubor po ulozeni nacist vůbec, protože XML ma porusenou strukturu, v pripade store() to sice soubor nahraje, ale poslední property je zkracena, cili chybna. Nevim, jestli mam vinit Properties.store(), CipherInputStream a CipherOutputStream, nebo spolecnou kombinaci těchto 2 trid. _ From: Lukas Adamek | Fayn Telecommunications s.r.o. [mailto:[EMAIL PROTECTED] Sent: Saturday, February 17, 2007 12:44 PM To: 'konference@java.cz' Subject: Sifrovani ukladaneho souboru Dobry den Trochu si ted hraju s sifrovanim a narazil jsem na jeden problem: Mam instanci Properties, kterou pomoci metody store() ukladam do souboru. Dale mam metody pro sifrovani a desifrovani pomoci DESu, ktere de/sifruji vstupni/vystupni proud. Problem je, ze pokud Properties zasifruji, ulozim a zpetne nahraji a desifruji, tak se ztrati konec. S sifrovanim teprve zacinam, poradite mi kde delam chybu? Takhle vypada vysledny desifrovany soubor: - #Sat Feb 17 12:10:29 CET 2007 aa=aa b - Jak je videt, část zaznamu u konce uplne chybi Zde uvadim, priklady zdrojaku: Cast vytvoreni a nahrani properties: - Properties properties = new Properties(); properties.setProperty("aa","aa"); properties.setProperty("bb","bb"); File file = new File("soubor.txt"); if( !file.exists() ) { file.createNewFile(); } properties.store(DESCipher.encryptFile(file), null); try { properties.load(DESCipher.decryptFile(licenceFile)); } catch (IOException ex) {} Cela trida pro de/sifrovani: - public class DESCipher { private static byte[] iv = new byte[] { (byte) 0x8E, 0x12, 0x39, (byte) 0x9C, 0x07, 0x72, 0x6F, 0x5A }; public static OutputStream encryptFile(File inFile) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, FileNotFoundException, InvalidAlgorithmParameterException { AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, new Klic(), paramSpec); CipherOutputStream cos = new CipherOutputStream(new FileOutputStream(inFile), cipher); return cos; } public static InputStream decryptFile(File inFile) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, FileNotFoundException { AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, new Klic(), paramSpec); CipherInputStream cis = new CipherInputStream(new FileInputStream(inFile), cipher); return cis; } static class Klic implements Key { public String getFormat() { return "RAW"; }; public String getAlgorithm() { return "DES"; }; public byte[] getEncoded() { return byte[] r = { 0, 6, 12, 21, 48, 96, 48, 24 }; } }; }
Sifrovani ukladaneho souboru
Dobry den Trochu si ted hraju s sifrovanim a narazil jsem na jeden problem: Mam instanci Properties, kterou pomoci metody store() ukladam do souboru. Dale mam metody pro sifrovani a desifrovani pomoci DESu, ktere de/sifruji vstupni/vystupni proud. Problem je, ze pokud Properties zasifruji, ulozim a zpetne nahraji a desifruji, tak se ztrati konec. S sifrovanim teprve zacinam, poradite mi kde delam chybu? Takhle vypada vysledny desifrovany soubor: - #Sat Feb 17 12:10:29 CET 2007 aa=aa b - Jak je videt, část zaznamu u konce uplne chybi Zde uvadim, priklady zdrojaku: Cast vytvoreni a nahrani properties: - Properties properties = new Properties(); properties.setProperty("aa","aa"); properties.setProperty("bb","bb"); File file = new File("soubor.txt"); if( !file.exists() ) { file.createNewFile(); } properties.store(DESCipher.encryptFile(file), null); try { properties.load(DESCipher.decryptFile(licenceFile)); } catch (IOException ex) {} Cela trida pro de/sifrovani: - public class DESCipher { private static byte[] iv = new byte[] { (byte) 0x8E, 0x12, 0x39, (byte) 0x9C, 0x07, 0x72, 0x6F, 0x5A }; public static OutputStream encryptFile(File inFile) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, FileNotFoundException, InvalidAlgorithmParameterException { AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, new Klic(), paramSpec); CipherOutputStream cos = new CipherOutputStream(new FileOutputStream(inFile), cipher); return cos; } public static InputStream decryptFile(File inFile) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, FileNotFoundException { AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, new Klic(), paramSpec); CipherInputStream cis = new CipherInputStream(new FileInputStream(inFile), cipher); return cis; } static class Klic implements Key { public String getFormat() { return "RAW"; }; public String getAlgorithm() { return "DES"; }; public byte[] getEncoded() { return byte[] r = { 0, 6, 12, 21, 48, 96, 48, 24 }; } }; }
Re: rychly vyvoj webaplikace pro existujici DB strukturu
Tuto kombinaci (Spring Framework, Spring Web Flow, Hibernate) používáme na jednom projektu...ale rozhodne bych neřekl že je to nějaké rychlé řešení. Dokonce ani s použitím Hibernate synchronizer pluginu pro Eclipse...je tam pořád milion věcí, které se jednoduše musí nadatlovat ručně (např PropertyEditory, Validatory, UserTypes pro Hibernate...) Dne Fri, 16 Feb 2007 18:55:49 +0100 Karel Tejnora <[EMAIL PROTECTED]> napsal/-a: Ja ted zkousim Spring Webflow, Spring framework s Hibernate. Na Hibrenate MyEclipse (www.myeclipseide.com) MyEclipse Hibernate. Petr Ferschmann wrote: vladimír karásek píše v Pá 16. 02. 2007 v 16:07 +0100: <---výřez---> Z vlastní zkušenosti můžu doporučit právě Seam. Ale to už víte :-) Také proto, že už existuje integrace pro Maven http://software.softeu.cz/seam/ ;-) -- Vlastimil Vavru Phone: +420 606 228 350 E-mail: [EMAIL PROTECTED]