|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
[JAVA] criptare una stringa
salve gente, avrei la necessità di criptare una data stringa con DES o con RSA (è indifferente per i fini del progettino) nel lato client e poterla decriptare nel lato server..
..ovviamente la chiave la devo conoscere a priori e non generarla a runtime..ho provato a guardare sulla documentazione della sun ma poco ho capito..qualcuno può darmi una mano? grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
uppp
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
ti posto un esempio molto basilare che puoi completare e milgiorare.
Codice:
import javax.crytpo.Cipher;
import javax.crytpo.SecretKey;
public class DEScrypt
{
Cipher cipher;
DEScrypt(SecretKey key)
{
try
{
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
}
catch (javax.crypto.NoSuchPaddingException e)
{
}
catch (java.security.NoSuchAlgorithmException e)
{
}
catch (java.security.InvalidKeyException e) {
}
}
public String encrypt(String stringa)
{
try
{
byte[] enc = cipher.doFinal(stringa.getBytes("UTF8");
return new sun.misc.BASE64Encoder().encode(enc);
}
catch (javax.crypto.BadPaddingException e)
{
}
catch (IllegalBlockSizeException e)
{
}
catch (UnsupportedEncodingException e)
{
}
catch (java.io.IOException e) {
}
return null;
}
}
Ultima modifica di kingv : 27-09-2004 alle 09:38. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
per utilizzare la classe sopra:
Codice:
//"chiave" te la devi salvare per potere decrittare,
SecretKey chiave = KeyGenerator.getInstance("DES").generateKey();
DEScrypt enc = new DEScrypt(key);
String encrypted = encr.encrypt("Stringa da crittare");
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
grazie mille, vedrò di metterlo in pratica quanto prima!
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
ehm..una cosa però
la chiave la dovrei decidere io..visto che in un altro host arriverà la stringa da decrittare..come posso fare? e altra cosa..come decritto 'sta stringa? |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
per quanto riguarda la chiave DES ha una lunghezza fissa (56 bit). se vuoi utilizzare un input fornito da te devi creare una funzione che tramuti quello che digiti in una chiave della dimensione corretta per l'algoritmo che utilizzi. per quanto riguarda la decrittazione lascio a te il codice, ma e' molto semplice (guarda la documentazione della classe Cipher |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
non per fare il guastafeste, ma perchè il des? non ha questa grande sicurezza
ciao! |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
una chiave a 56 bit ha 72 milioni di miliardi di combinazioni. con hardware dedicato (e costosissimo) penso che ci vogliano comunque diversi giorni per una ricerca esaustiva. forse non sarà sicuro per i piani militari degli usa, ma non pensare che sia come lasciare i dati in chiaro. in ogni caso JCE offre ance le implementazioni di altri algoritmi e in rete si trovano implementazioni gratuite di algoritmi piu' recenti Ultima modifica di kingv : 27-09-2004 alle 23:00. |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
no, non con il des
un chip deep crack costa ormai relativamente poco (un paio di vecchi milioni ) e aumentando il numero diminuisce linearmente il tempo necessario. Quote:
io mi butterei sull'aes e se trovi le api magari su mars ciao |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
uso il des per il semplice motivo che mi pare il più facile da implementare, deve essere solo un esempio in un progetto per far vedere al prof che la stringa passa dal client al server criptata
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
ok mi arrendo. per l'AES basta JCE che e' integrato in j2se 1.4.2, MARS non so nemmeno cosa sia ![]() un provider alternativo a quello di sun e molto valido e' quello che si trova su http://www.bouncycastle.org/, è compatibile con openPGP e offre nuemrose features non disponibile nella reference implementation. |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
mars è belllo
http://www.research.ibm.com/security/mars.html era il candidato dell'ibm per l'aes. velocissimo e tiene chiavi fino a 1204 però non avendo passato la selezione non si trova da nessuna parte (forse anche per problemi di licenza) cia |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:08.




















