Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    Interoperabilità cifratura AES con Action Script 3

    Buongiorno a tutti ho un grosso problema che non riesco a risolvere.
    Ho un sistema client server dove partiamo già da una situazione nella quale client e server possiedono la medesima chiave.
    Attraverso questa chiave il client in Action Script 3 effettua la cifratura (AES) di una stringa, invia la stringa al server Java il quale a questo punto, sfruttando la solita chiave simmetrica, dovrebbe occuparsi di effettuare la decifratura.

    La difficoltà non è quella di trovare una funzione in Java che effettui il Decrypt in AES (ce ne sono molte in rete) ma trovare un sistema AS3-Java (sostanzialmente del codice d'esempio) che garantisca interoperabilità tra la funzione di Encrypt in AS3 e la funzione di Decrypt in Java.

    Spero che qualcuno possa aiutarmi, grazie.

  2. #2
    Nessuno può aiutarmi?

    NB: vorrei fare una nota in modo da chiarire ciò che avevo precedentemente scritto.
    Definite le funzioni
    AS3EncryptAES(String key, String txt) che ritorna String txtEncrypt e
    JAVADecryptAES(String key, String txtEncrypt) che ritorna String txt

    ciò che voglio ottenere è che

    txt == JAVADecryptAES(key, (AS3EncryptAES(key, txt)))

    Spero di aver migliorato la situazione ... !?? :master:

  3. #3
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    Originariamente inviato da marcofava
    Nessuno può aiutarmi?

    NB: vorrei fare una nota in modo da chiarire ciò che avevo precedentemente scritto.
    Definite le funzioni
    AS3EncryptAES(String key, String txt) che ritorna String txtEncrypt e
    JAVADecryptAES(String key, String txtEncrypt) che ritorna String txt

    ciò che voglio ottenere è che

    txt == JAVADecryptAES(key, (AS3EncryptAES(key, txt)))

    Spero di aver migliorato la situazione ... !?? :master:
    qualcosa di crittografia ho fatto..
    ma mi sfugge.. tu vuoi un sistema encrypt/decrypt che funzioni con AES ?
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  4. #4
    Allora cerchiamo di essere chiari...
    AES è un algoritmo di cifratura a chiave simmetrica, ciò significa che attraverso la medesima chiave "secretkey", il mittente cifra "my important test" e il destinatario decifra qualcosa la cui decifratura tornerà "my important test".

    A questo punto consideriamo che il mittente che cifra è un client in ActionScript3 e il destinatario che decifra è un server in Java.

    Voglio che la "pappardella" che ottengo attraverso la cifratura AES in AS3 possa essere decifrata (sempre AES naturalmente) da Java in modo da ottenere il mio testo corretto.

    Io sto già facendo delle prove di comparazione delle cifrature, ma il problema è che già a monte mi accorgo che la cifratura AES in AS3 e quella in Java danno risultati diversi a fronte dell'utilizzo di una stessa chiave per cifrare lo stesso testo.

    Io sto usando la libreria AS3crypto per quanto riguarda la cifratura in AS3. Per Java invece mi appoggio a "javax.crypto" con i soliti metodi "cipher.doFinal", ...

    Ragazzi confido su di voi... se no divento pazzo!!!!!!!!

  5. #5
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    Originariamente inviato da marcofava
    Allora cerchiamo di essere chiari...
    AES è un algoritmo di cifratura a chiave simmetrica, ciò significa che attraverso la medesima chiave "secretkey", il mittente cifra "my important test" e il destinatario decifra qualcosa la cui decifratura tornerà "my important test".

    A questo punto consideriamo che il mittente che cifra è un client in ActionScript3 e il destinatario che decifra è un server in Java.

    Voglio che la "pappardella" che ottengo attraverso la cifratura AES in AS3 possa essere decifrata (sempre AES naturalmente) da Java in modo da ottenere il mio testo corretto.

    Io sto già facendo delle prove di comparazione delle cifrature, ma il problema è che già a monte mi accorgo che la cifratura AES in AS3 e quella in Java danno risultati diversi a fronte dell'utilizzo di una stessa chiave per cifrare lo stesso testo.

    Io sto usando la libreria AS3crypto per quanto riguarda la cifratura in AS3. Per Java invece mi appoggio a "javax.crypto" con i soliti metodi "cipher.doFinal", ...

    Ragazzi confido su di voi... se no divento pazzo!!!!!!!!
    chiaro chiarissimo.. è roba che conosco..
    ho già fatto tutto quanto ma ovviamente non ti posso postare il codice..
    postami il tuo e ti dico dove sbagli (se riesco)
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  6. #6
    Se hai il codice pronto preferirei che tu me lo mandassi visto che altrimenti dovrei postarti un bel po' di righe di codice...! Se sei disponibile mandami una mail, te ne sarei davvero molto grato.
    Mail: marcofavagrossa@libero.it

  7. #7
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    nonnneeeee.. il codice già pronto non lo mando per motivi aziendali (è di grossa distribuzione)
    se vuoi ti aiuto qui e basta..
    a me interessa solo la funzione di decrypt cmq.. saran si e no 20 righe..
    posta solo quella..
    ho il dubbio che non ti riesce perchè sbagli con la dimensione della chiave..
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  8. #8
    ehehehehe sei stato molto chiaro. Appena ho un attimo tiro su il codice. Intanto ti posto il sito dove gira la demo dell'As3crypto con il quale faccio le prove per verificare il crypt.
    http://crypto.hurlant.com/demo/
    Tra poco posto il codice Java, grazie

  9. #9
    Ecco il codice Java nel quale faccio sia l'encrypt che il decrypt. Quello che noto è che andando sul sito postato quì sopra ed effettuando una cifratura AES/ECB/PKCS5Padding con stessa chiave sullo stesso testo il risultati (in base 64) è completamente diverso e quindi il decrypt in Java non risulterebbe affatto.

    codice:
    public static void main(String[] args) throws Exception
        {      
        	//BufferedWriter out = new BufferedWriter(new FileWriter("C:/Users/fava.MOBO/Desktop/encrypt.txt"));
        	//String uscita = "";
        	
            //GENERA UNA CHIAVE AES
        	 String plaintextTXT = "ciao a tutti"; //testo in chiaro
        	 //uscita += "Testo in chiaro: " + plaintextTXT + "\n";
        	 System.out.println("Testo in chiaro: " + plaintextTXT + "\n");
        	 String key = "ada7b77400e6f540";
        	 SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
        	 //uscita += "Chiave: " + key + "\n";
        	 System.out.println("Chiave: " + key + "\n");
        	 //uscita += "Chiave per AES: " + keySpec.toString() + "\n";
        	 System.out.println("Chiave per AES: " + keySpec.toString() + "\n");
        	 
            //OTTIENE UN CIFRARIO AES/ECB/PKCS5Padding IN ENCRYPT_MODE
        	Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
            cipher.init(Cipher.ENCRYPT_MODE, keySpec);
            
            byte[] plaintext = plaintextTXT.getBytes("UTF8");
            
            //CODIFICA IL TESTO
            byte[] ciphertext = cipher.doFinal(plaintext);
            //uscita += "Testo cifrato: " + ciphertext.toString() + "\n"; 
            System.out.println("Testo cifrato: " + ciphertext.toString() + "\n");
            
            //BASE 64 ENCRYPT
            BASE64Encoder encoder = new BASE64Encoder();
            String crypt64 = encoder.encodeBuffer(ciphertext);
    	    System.out.println("Testo cifrato base 64: " + crypt64 + "\n");
            
            //MODIFICA IL CIFRARIO IN DECRYPT_MODE
            cipher.init(Cipher.DECRYPT_MODE, keySpec);
            
            //DECODIFICA IL TESTO
            //byte[] decripted = cipher.doFinal(ciphertext);
            BASE64Decoder decoder = new BASE64Decoder();
            byte[] crypt = decoder.decodeBuffer(crypt64);
            byte[] decripted = cipher.doFinal(crypt);
            System.out.println("Testo cifrato decodificato base 64: " + crypt.toString() + "\n");
            
            String output = new String(decripted, "UTF8");
            //uscita += "Testo cifrato decifrato: " + output;
            System.out.println("Testo cifrato decifrato: " + output);      
        }

  10. #10
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    mhhh... le funzioni son le stesse più o meno

    codice:
        /**
         * Decrypt BASE64 encoded text using private key
         * @param text The encrypted text, encoded as BASE64
         * @param key The private key
         * @return The unencrypted text encoded as UTF8
         * @throws java.lang.Exception
         */
        public String decrypt(String text, Key key) throws Exception{
        	
            String result;
            try{
                // decrypt the text using the private key
                byte[] dectyptedText = decrypt(decodeBASE64(text),key);
                result = new String(dectyptedText, "UTF8");
                System.out.println("Decrypted text is: " + result);
            }catch (Exception e){
            	e.printStackTrace();
                throw e;
            }
            return result;
    
        }
    
        public byte[] decrypt(byte[] text, Key key) throws Exception{
        	
            byte[] dectyptedText = null;
            try{
                // decrypt the text using the private key
            	Cipher cipher = Cipher.getInstance(ALGORITHM + "/" + MODE + "/" + PADDING);
                System.out.println("Start decryption");
                cipher.init(Cipher.DECRYPT_MODE, key);
                dectyptedText = cipher.doFinal(text);
            }catch (Exception e){
            	e.printStackTrace();
                throw e;
            }
            return dectyptedText;
    
        }
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

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 © 2025 vBulletin Solutions, Inc. All rights reserved.