RE: Sifrovani ukladaneho souboru

2007-02-17 Tema obsahu Lukas Adamek | Fayn Telecommunications s.r.o.
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?

2007-02-17 Tema obsahu Martin Kuba

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

2007-02-17 Tema obsahu Martin Kuba

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

2007-02-17 Tema obsahu Karel Tejnora
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

2007-02-17 Tema obsahu Martin Rubeš
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

2007-02-17 Tema obsahu Lukas Adamek | Fayn Telecommunications s.r.o.
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

2007-02-17 Tema obsahu Lukas Adamek | Fayn Telecommunications s.r.o.
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

2007-02-17 Tema obsahu Vlastimil Vávrů
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]