Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247

    Cifrare stringa in AES-256

    Salve,

    vorrei cifrare una stringa in AES-256, ma su Internet (sarà che non sono bravo a cercare...) non sono riuscito a trovare nemmeno una funzione predisposta che permetta di farlo.
    In compenso, ho trovato DLL closed source (non mi fido) o enormi librerie C++ opensource che cifrano con 209 algoritmi diversi e con 1000 pagine di documentazione.

    A me servirebbero due semplici funzioni del tipo:

    AESEncrypt(PlainText: string; Password: string) : string
    AESDecrypt(EncryptedText: string; Password: string) : string

    Ovviamente deve implementare, all'interno, un generatore di chiavi 256-bit tipo SHA-1... E forse è questo il vero problema...

    Qualcuno mi dà una mano?

    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Basta cercare... guarda qui.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Grazie mille! Non conoscevo quel sito, molto utile...

    Il componente (ho scelto il secondo della lista) funziona bene. In realtà servirebbe a cifrare i file, perciò se l'output è mostrato come stringa compaiono caratteri non riconosciuti. Per questo, ho incluso un componente per la codifica/decodifica base64 e ho risolto il problema trasformando l'output binario in base64.

    Ora sto cercando un modo per portare la chiave a 256 bit...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Ora sto cercando un modo per portare la chiave a 256 bit...
    Sembrerebbe che la lunghezza della chiave è gestita in modo automatico ed è variabile: se la password è più lunga di tot caratteri, allora la chiave è 256, altrimenti 192 o 128. Mi sembra strano che l'algoritmo di hashing non riesce a produrre una chiave lunga 256 bit anche a partire da una password breve. Io lo trovo strano... Non che mi lamenti del funzionamento di quella libreria, solo che la cosa mi incuriosisce...
    Alka, tu ne sai qualcosa?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Dai un'occhiata a questa pagina, forse contiene informazioni utili a risolvere il problema.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Originariamente inviato da alka
    Dai un'occhiata a questa pagina, forse contiene informazioni utili a risolvere il problema.

    Ciao!
    Non ne parla... Dovrei scrivere all'autore della libreria originaria in C++.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da firefox88
    Non ne parla... Dovrei scrivere all'autore della libreria originaria in C++.
    Mi sembra che vi sia un riferimento al fatto che la chiave sia un multiplo di 128bit e che, quindi, venga scelta la dimensione della stessa in base alla lunghezza del dato da "proteggere"... o forse ho letto male io.

    In sostanza, temo sia una caratteristica dell'algoritmo più che un difetto della libreria.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    In sostanza, temo sia una caratteristica dell'algoritmo più che un difetto della libreria.
    Non ho mai detto che fosse un difetto

    Da quello che ho capito io, la chiave è più lunga o più breve in relazione alla password, e non alla lunghezza del dato da proteggere (vedi http://fp.gladman.plus.com/cryptogra...y/fileencrypt/ sotto la voce "overall structure")

    Ciò potrebbe essere legato a questioni di hashing (forse è difficile trasformare una password lunga due caratteri in una chiave di 256 bit...), ma non si capisce...
    Pensa che persino WinZIP dichiara di utilizzare le librerie del Dr. Gladman (http://www.winzip.com/aes_info.htm), però il programma permette di scegliere fra AES-128 e AES-256, e dunque la lunghezza della chiave non sembra dipendere da quella della password... E non credo che se io scelgo "AES-256" e come password uso "abc" alla fine WinZIP mi cifra in AES-128...

    La cosa è strana, però non fa niente, l'importante è che funziona...

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.