Ciao !
Ho provato a codificare una mia password con la funzione javascript
Ora come posso fare a ricavarla? Cioè .. come posso decodificarla partendo dal valore di 2.493310153963928e+24 ?Codice PHP:
pass *= password.charCodeAt(i);
:D Grazie !!
Ciao !
Ho provato a codificare una mia password con la funzione javascript
Ora come posso fare a ricavarla? Cioè .. come posso decodificarla partendo dal valore di 2.493310153963928e+24 ?Codice PHP:
pass *= password.charCodeAt(i);
:D Grazie !!
Puoi utilizzare il metodo fromCharCode.
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen
Ho provato così :
ma non va ç__çCodice PHP:
<script type="text/javascript">
document.write(String.fromCharCode(2.493310153963928e+24))
</script>
Come posso fare :( ?
Se quella funzione è dentro un ciclo (magari invocata per ciascun carattere), purtroppo quella codifica è sbagliata... nel senso che non è una codifica perché non reversibile (per la nota probabilità commutativa della moltiplicazione, quel numero può essere associabile a qualsiasi anagramma della stringa di partenza, e se poi ci aggiungiamo gli errori di approssimazione...).
Quello che potresti fare è quella che è chiamata codifica aritmetica: da una stringa ti permette di avere un numero compreso tra 0 e 1 e univocamente determinabile (però non puoi fare molto con gli errori di approssimazione)
Stammi bene...
Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?
When you don't know your next step... improvise
ALTERVISTA WANTS YOU!
Vuoi diventare moderatore su AlterVista? Scopri come...
uhm .... ho capito poco XD
Quindi è irreversibile ?
posto tutta la pagina ;)
magari qualcuno riesce nella decodifica ^_^
^_^Codice PHP:
<script type="text/javascript" language="JavaScript">
<!--
function submitentry(){
password = document.password1.password2.value.toLowerCase()
pass = 1
for(i = 0; i < password.length; i++) {
pass *= password.charCodeAt(i);
}
if(pass == 2.493310153963928e+24 || pass == 1.246655076981964e+26){
window.location=password+".htm"}
else{
alert("Password non corretta")}
}
//-->
</script>
<form name="password1">
<span class="Stile6">Inserisci password: </span>
<input type="text" name="password2" size="15">
<input type="button" value="Accedi" onClick="submitentry()">
</form>
Diciamo che quel tuo if riesce a verificare solamente se è stato inserito un anagramma di una password preimpostata. Poi, però, viene usata proprio la password come indirizzo web: in questo caso, la pagina o esiste o non esiste... se però non esiste di certo non viene visualizzato il messaggio "Password errata".
La codifica aritmetica che ti dicevo è questa (in via teorica, perché con gli errori di approssimazione più lunga è la password più difficile è la riuscita della decodifica):Se non mi sono incasinato a scrivere in codice l'algoritmo, dovrebbe essere giusto... naturalmente il tutto funziona solamente se la word iniziale contiene solo caratteri dell'alfabeto...Codice:var alphabet = new Array ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); function encode (word) { var interval = 1; var base_length = alphabet.length + 1; var code = 0; for (var i = 0; i < word.length; i++) { for (var j = 0; j < alphabet.length; j++) if (alphabet[j] == word.charAt(i)) { code += (j + 1) * interval / base_length; break; } interval /= base_length; } return code; } function decode (number) { var interval = 1; var zero_code = 0; var base_length = alphabet.length + 1; var word = ""; while (true) { var char_code = Math.floor ((number - zero_code) / interval * base_length); if (char_code == 0) break; word += alphabet[char_code - 1]; zero_code += char_code * interval / base_length; interval /= base_length; } return word; }
Stammi bene...
EDIT: ho migliorato un pochino il codice, le parole più lunghe continua a non beccarle ma almeno non va in loop infinito...
Ultima modifica di dementialsite : 12-10-2007 alle ore 14.21.30
Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?
When you don't know your next step... improvise
ALTERVISTA WANTS YOU!
Vuoi diventare moderatore su AlterVista? Scopri come...