Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670

    [Java] DES criptare i dati

    Ciao a tutti
    Qualcuno ha qualche classe in grado di criptare e decriptare stringhe con DES? (o qualche altro buon algoritmo)
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    bouncycastle: è la bibbia della crittografia in/con java

    http://www.bouncycastle.org/
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    mmm
    Ma sono librerie esterne!
    Non c'è nulla di già integrato?

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ah... allora qui:

    c'è un po' un overview di JCE

    http://java.sun.com/products/jce/index-14.html

    e l'home page di JCE

    http://java.sun.com/products/jce/
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    ho dato un'occhiata ma non ci ho capito nulla
    un piccolissimo esempietto per favore...
    grazieee

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    ops mi sa che ho sbagliato con DES...
    Ma per criptare non utilizza una chiave che viene data, la crea lui?
    a me serve un algoritmo per criptare un testo data una chiave e decriptarlo con la stessa...
    con DES non avviene questo?
    :master:

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ok:

    codice:
    import javax.crypto.*;
    import javax.crypto.spec.*;
    import java.io.*;
    
    public class DesEncrypter {
            Cipher ecipher;
            Cipher dcipher;
    
            // 8-byte Salt
            byte[] salt = {
                (byte)0xA9, (byte)0x9B, (byte)0xC8, (byte)0x32,
                (byte)0x56, (byte)0x35, (byte)0xE3, (byte)0x03
            };
    
            // Iteration count
            int iterationCount = 19;
    
            DesEncrypter(String passPhrase) {
                try {
                    // Create the key
                    PBEKeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(), salt, iterationCount);
                    SecretKey key = SecretKeyFactory.getInstance(
                        "PBEWithMD5AndDES").generateSecret(keySpec);
                    ecipher = Cipher.getInstance(key.getAlgorithm());
                    dcipher = Cipher.getInstance(key.getAlgorithm());
    
                    // Prepare the parameter to the ciphers
                    PBEParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);
    
                    // Create the ciphers
                    ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
                    dcipher.init(Cipher.DECRYPT_MODE, key, paramSpec);
                } 
                catch (java.security.InvalidAlgorithmParameterException e) {
                } 
                catch (java.security.spec.InvalidKeySpecException e) {
                } 
                catch (javax.crypto.NoSuchPaddingException e) {
                } 
                catch (java.security.NoSuchAlgorithmException e) {
                } 
                catch (java.security.InvalidKeyException e) {
                }
            }
    
            public String encrypt(String str) {
                try {
                    // Encode the string into bytes using utf-8
                    byte[] utf8 = str.getBytes("UTF8");
    
                    // Encrypt
                    byte[] enc = ecipher.doFinal(utf8);
    
                    // Encode bytes to base64 to get a string
                    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;
            }
    
            public String decrypt(String str) {
                try {
                    // Decode base64 to get bytes
                    byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str);
    
                    // Decrypt
                    byte[] utf8 = dcipher.doFinal(dec);
    
                    // Decode using utf-8
                    return new String(utf8, "UTF8");
                } 
                catch (javax.crypto.BadPaddingException e) {
                } 
                catch (IllegalBlockSizeException e) {
                } 
                catch (UnsupportedEncodingException e) {
                } 
                catch (java.io.IOException e) {
                }
                return null;
            }
        }
    e una classe test per le stringhe

    codice:
    public class security_test {
    
      public static void main (String args[]) {
        try {
            
            DesEncrypter encrypter = new DesEncrypter("Mannaggia!");
            
            String encrypted = encrypter.encrypt("Speriamo che funzioni e non si capisca una mazza!");
            System.out.println("Encrypted: "+encrypted);
    
            String decrypted = encrypter.decrypt(encrypted);
            System.out.println("Decrypted: "+decrypted);
        } catch (Exception e) {
        }
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    ti ringrazio moltissimo...
    quel "mannaggia!" che hai scritto è la chiave per DES??
    Ora la provo...
    grazie ancora.
    ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.