Ciao ragazzi mi date una mano a capire come potrei creare una funziona che prende una stringa presa dal db e la converte tramite una parola....
e poi la funzione per decriptarla con la stessa parola...^^
Ciao ragazzi mi date una mano a capire come potrei creare una funziona che prende una stringa presa dal db e la converte tramite una parola....
e poi la funzione per decriptarla con la stessa parola...^^
Utilizzare le funzion crypt() md5(), sha1() per criptare e decriptare stringhe.
Cerca con google per più info...
LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org
VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
FAI IL TEST CON L'ANALISI VINCITE
...Però poi non potrà tornare in dietro!
Ad esempio se cripti la parola ciao --> 6e6bc4e49dd477ebc98ef4046c067b5f
Dalla stringa 6e6bc4e49dd477ebc98ef4046c067b5f non potrai MAI tornare indietro a ciao!
...Un mio consiglio è quello di farsi una funzione sua.
regolamento altervista_______________ regolamento forum
usando crypt
sono riuscito a fare una cosa del genere
ma per decriptarla
Codice PHP:
echo crypt($contenuto, "xt");
crypt, md5 e sha1 sono processi irreversibili (tranne se ti salvi il rispettivo contenuto da qualche parte e poi lo confronti) perchè calcolano l'hash e quindi non è permesso la decriptazione.
Se vuoi creare una o due funzioni per criptare/decriptare stringhe in una "codifica" tutta tua il primo passo è creare un array inserendogli "lettera"=>"valore_criptato_corrispondente_alla_le ttera.
Quando l'array è completo dovrai inserire nella funzione strtr (o simili) sia la stringa che l'array.
Per decriptare utilizzerai una funzione (array_inverse() se non ricordo male) che sarà l'opposto della prima.
tu dici tipo il cifrario di cesare...
Esempi di funzioni per criptare e decriptare....
http://www.webmasterworld.com/php/3086138.htm
http://www.weberdev.com/get_example-4118.html
http://www.itnewb.com/v/PHP-Encrypti...rary-libmcrypt
Manuale su php.net:http://php.net/manual/en/book.mcrypt.php
LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org
VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
FAI IL TEST CON L'ANALISI VINCITE
Ecco, ho appena trovato un vecchio codice archiviato nel sito e mai usato (per ora):
Codice PHP:
<?php
$myarray = array("a"=>"hgf","b"=>"flk","c"=>"mdl");
function cripta($string){
global $myarray;
return $myarray[$string];
}
function decripta($string){
global $myarray;
$myarraye = array_flip($myarray);
return $myarraye[$string];
}
echo cripta("a b c"); // Stampa "hgf flk mld"
echo "<br />";
echo decripta("hgf flk mld"); // Stampa "a b c"
?>
invece di usare un array...
pensavo di usa
criptandole e decriptandole usando un testobase64_encode()
base64_decode()
tipo una cosa del genere
echo crypt($contenuto, "xt");
Non ho capito. Se usi base64_encode e base64_decode non hai bisogno di un'ulteriore funzione per criptare le stringhe, lo fanno quelle due. Il secondo parametro della funzione crypt è un salt, una stringa fissa che viene aggiunta dinamicamente da PHP alla fine del testo da criptare nel caso tu non la specifichi. Che cosa c'entra?
zappi da quanto io ho potuto capire nel tuo primo post tu volevi una "codifica" personale, base64_encode e base64_decode fanno tutto loro ma chiunque entri in possesso del tuo testo può "decriptarlo" per questo io ti ho suggerito il mio vecchio codice.
Comunque se vuoi utilizzare la base64 non c'è alcun problema, solo voglio farti notare, come ha probabilmente sottolineato alessandro, che se usi la funzione crypt insieme alla base64_encode il processo è irreversibile.
Come ti ho già detto sopra crypt è una funzione che calcola l'hash di una stringa secondo un suo algoritmo e quindi è irreversibile, se tu, una volta codificato il tuo testo in base64 lo codifichi a sua volta in crypt non potrai più ricavare il testo d'origine.
Quindi, senza offendere nessuno, ti consiglio di dimenticare, per il tuo scopo, le funzioni md5, sha1 e crypt (e simili) qui citate in quanto irreversibili.
In questa pagina ... http://www.php.net/manual/en/mcrypt.examples.php ... ho trovato alcuni esempi che usano le funzioni Mcrypt in modo avanzato.
Puoi utilizzare base64 con queste funzioni avanzate....
Example is triple_des and cbc with self key and iv for storing in base64:
***********************************Codice PHP:
$key = "E4HD9h4DhS23DYfhHemkS3Nf";// 24 bit Key
$iv = "fYfhHeDm";// 8 bit IV
$input = "Text to encrypt";// text to encrypt
$bit_check=8;// bit amount for diff algor.
$str= encrypt($input,$key,$iv,$bit_check);
echo "Start: $input - Excrypted: $str - Decrypted: ".decrypt($str,$key,$iv,$bit_check);
function encrypt($text,$key,$iv,$bit_check) {
$text_num =str_split($text,$bit_check);
$text_num = $bit_check-strlen($text_num[count($text_num)-1]);
for ($i=0;$i<$text_num; $i++) {$text = $text . chr($text_num);}
$cipher = mcrypt_module_open(MCRYPT_TRIPLEDES,'','cbc','');
mcrypt_generic_init($cipher, $key, $iv);
$decrypted = mcrypt_generic($cipher,$text);
mcrypt_generic_deinit($cipher);
return base64_encode($decrypted);
}
function decrypt($encrypted_text,$key,$iv,$bit_check){
$cipher = mcrypt_module_open(MCRYPT_TRIPLEDES,'','cbc','');
mcrypt_generic_init($cipher, $key, $iv);
$decrypted = mdecrypt_generic($cipher,base64_decode($encrypted_text));
mcrypt_generic_deinit($cipher);
$last_char=substr($decrypted,-1);
for($i=0;$i<$bit_check-1; $i++){
if(chr($i)==$last_char){
$decrypted=substr($decrypted,0,strlen($decrypted)-$i);
break;
}
}
return $decrypted;
}
Voglio far notare che...variando le variabili $key(24bit secret key) e $iv(8bit secret iv) come input in fase di richiesta(basterà ricordarsi cosa si è inserito per queste 2 variabili), nessuno potrà mai decriptare una stringa privata(frase o parola che sia) anche se qualche sconosciuto ne è venuto a conoscenza...
***********************************
Ultima modifica di EuroSalute : 30-12-2009 alle ore 19.16.14 Motivo: maggiori info
LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org
VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
FAI IL TEST CON L'ANALISI VINCITE
questo stamperà: pIËÐq©Ó8 = darkwolfCodice PHP:
<?php
$key = "chiaveprivata";
$value = "darkwolf";
$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $value, MCRYPT_ENCRYPT);
$decrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $encrypted_data, MCRYPT_DECRYPT);
echo $encrypted_data;
echo " = ";
echo $decrypted_data;
?>
Direi che l'esempio di darkwolf è molto interessante, in quanto codifica i dati secondo una chiave privata che è in possesso solamente tuo, quindi è come se fosse un algoritmo one-way solo per chi non sa che la variabile $key contiene il valore chiaveprivata. Non sapevo che in PHP si potesse fare, interessante!
EDIT: Dando un'occhiata al manuale di PHP sembra deprecata quella funzione, usa mcrypt_cbc, credo che accetti gli stessi parametri (ma che cambia?!).
Ultima modifica di alessandro1997 : 30-12-2009 alle ore 19.39.35
Su AV è possibile da quando (ormai qualche mese fa) fu abilitata la libreria mcrypt :)
Vero, vedo che è deprecata, qui funziona comunque: http://darkwolf.altervista.org/script/crypt.php e non so dirti quale sia la differenza :P
Beh, ma le funzioni deprecate funzionano, è che sarebbe meglio non usarle perché all'avanzamento di versione, a meno che non siano indispensabili/usate dal 99% dei server, vengono eliminate...
quello che dicevo io
e perfetto
http://darkwolf.altervista.org/script/crypt.php
ma
mcrypt_ecb
funziona sulla maggior parte dei server...^^
Puoi usare un vecchio algoritmo che ho scritto tempo fa:
http://gabryhacker.altervista.org/re...ources/alg.zip
lo provato ma non funziona da errore
Fatal error: Call to undefined function: mcrypt_ecb()