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

    Algoritmi crypt e decrypt

    Salve, conoscete qualche algoritmo o funzione per cryptare e decryptare testi in modo rapido e sopratutto il cui output (del crypt) non sia troppo lungo?

    Ho provato i base64, ma quando decripto, se si tratta di un testo con apici, simboli di apertura tag, lettere accentate non esce mai l' originale ma al suo posto simboli strani.

    Ho provato anche con mcrypt_decrypt e mcrpypt_encrypt, stessa cosa di prima.

    Infine ho trovato un algoritmo interessante qua nel forum che funziona perfettamente, ma genera un ouput di crypt troppo lungo (contando che devo passarlo tramite get, l' hosting rimanda errore di link troppo lungo).

    L' ultimo algoritmo (quello trovato nel forum) è il seguente:

    Codice PHP:
    function crypt($key$data) {
      if(
    strlen($key)<32$key md5($key);
      
    $ld  strlen($data);
      
    $lk  strlen($key);
      for(
    $i=0$crdata=""$i<$ld$i++){
        
    $crdata .= sprintf("%02X",(ord($data[$i]))^(ord($key[$i%$lk])));
      }
      return 
    $crdata;
    }

    function 
    decrypt($key$cdata) {
      if(
    strlen($key)<32$key md5($key);
      
    $ld  strlen($cdata);
      
    $lk  strlen($key);
      for(
    $i=0$data=""$i<$ld$i+=2){
        
    $data .= chr((hexdec(substr($cdata$i2)))^(ord($key[($i>>1)%$lk])));
      }
      return 
    $data;

    Se avete modo di migliorarlo (non è mio..) per renderlo più corto, fate pure..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    base64 non è un algoritmo per criptare dati, è semplicemente una codifica diversa ma chiunque può leggere i tuoi dati. Quindi la domanda è, ti serve criptare veramente i dati per motivi di sicurezza?

    Se spieghi meglio a cosa ti serve effettivmente e cosa sono questi dati ti posso essere più d'aiuto.
    Visita il mio blog e canale YouTube dedicati a programmazione web e sicurezza informatica.

  3. #3
    Si tratta di passare dei dati (che possono essere semplice parole, come un testo intero di 2000 caratteri come un numero solamente) tramite $_GET ad un' altra pagina, quindi ho messo un link a questi dati che riporta alla pagina che li riceverà. Pensavo di trasformare questi dati in input submit così metto tutto in una variabile, però essendo in un ciclo for che a sua volta sta in un while (queste informazioni che verranno passate a me sono sconosciute..) diventa complicato.

    La risposta dunque è: No, non è per sicurezza ma per comodità e l' alternativa a questa comodità è un po' complicata.

    Avevo pensato di inserirli in un cookie, ma gli apici dei testi creano problemi (anche con addslashes) e se superano i 4kb credo che il cookie non lo accetta.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  4. #4
    Che problema c'è a passarli direttamente via GET?
    Visita il mio blog e canale YouTube dedicati a programmazione web e sicurezza informatica.

  5. #5
    il problema è che se è un testo di 2000 caratteri, la pagina ricevente non accetta l' url dicendo che è troppo lungo..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  6. #6
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da 0-c00l
    il problema è che se è un testo di 2000 caratteri, la pagina ricevente non accetta l' url dicendo che è troppo lungo..
    Ciao. Quindi ti servirebbe criptare un testo di 2000 caratteri per ridurlo a 30-50 caratteri e poi riuscire pure a decriptarlo? Direi che è praticamente impossibile fare una cosa del genere se è proprio questo che vuoi fare.
    Criptando un testo qualsiasi, anche lunghissimo, puoi ridurlo a un piccolo numero fisso di caratteri (per esempio con md5) ma non puoi di certo tornare al testo originale in modo inverso.

    Mi dispiace ma se quello che vuoi fare è quello che ho detto è impossibile. Due soluzioni che mi vengono in mente sono:
    1 - passare il testo così com'è con metodo post anzichè get
    2 - crei un file di testo temporaneamente, (in una cartella protetta tramite un file .htaccess se vuoi) e lo salvi. Poi nella pagina che vuoi lo leggi e lo cancelli immediatamente.


  7. #7
    Originariamente inviato da costi31
    Ciao. Quindi ti servirebbe criptare un testo di 2000 caratteri per ridurlo a 30-50 caratteri e poi riuscire pure a decriptarlo? Direi che è praticamente impossibile fare una cosa del genere se è proprio questo che vuoi fare.
    Criptando un testo qualsiasi, anche lunghissimo, puoi ridurlo a un piccolo numero fisso di caratteri (per esempio con md5) ma non puoi di certo tornare al testo originale in modo inverso.

    Mi dispiace ma se quello che vuoi fare è quello che ho detto è impossibile. Due soluzioni che mi vengono in mente sono:
    1 - passare il testo così com'è con metodo post anzichè get
    2 - crei un file di testo temporaneamente, (in una cartella protetta tramite un file .htaccess se vuoi) e lo salvi. Poi nella pagina che vuoi lo leggi e lo cancelli immediatamente.

    Avevo pensato ad entrambi, ma dovrei trasformare ogni link in un input submit, vabbè a quanto pare è l' unica soluzione.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  8. #8
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Non c'è bisogno che anzichè i link usi input submit se non vuoi proprio. Crei un input di tipo hidden che ha come valore il testo, poi assegni un'id al form e invii con un link tramite javascript. Metti al link come href="#" e come evento onclick="document.getElementById('idform').submit( )"

  9. #9
    Originariamente inviato da costi31
    Non c'è bisogno che anzichè i link usi input submit se non vuoi proprio. Crei un input di tipo hidden che ha come valore il testo, poi assegni un'id al form e invii con un link tramite javascript. Metti al link come href="#" e come evento onclick="document.getElementById('idform').submit( )"

    Sì ma i record sono più record (un numero a me sconosciuto) e con i cicli li stampo a video tutti, dovrei fare un form per ognuno di essi? Mettere tutti input hidden con lo stesso nome direi che provocherebbe danni
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  10. #10
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Sì, dovresti creare per ognuno di essi un form e un link o pulsante submit. Ma se tanto hai detto che crei tutto in modo dinamico con un ciclo, basta aggiungere pochissime righe di codice per creare in automatico un form, (con id univoco) un campo hidden e un link (che invia il form con l'id corrispondente) per ognuno.

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.