Proteggere File
Proteggere File
Scusate, ho creato delle schede in html che ho la necessità di hostare su internet.....
Il problema è che sono delle schede "personali" e quindi vorrei proteggerle con qualche password o, preferibilmente, criptarli.....
Ma il fatto è che queste schede devono poter essere aperte da vari computer e con vari sistemi operativi....... quindi in pratica cercavo qualche consiglio su come farlo.....
Un metodo "universale" che mi viene in mente è comprimere i file (ad esempio in .zip) e mettere la password....... ma questo sistema non mi dà molta affidabilità.....
Grazie in anticpipo
Ciao
Il problema è che sono delle schede "personali" e quindi vorrei proteggerle con qualche password o, preferibilmente, criptarli.....
Ma il fatto è che queste schede devono poter essere aperte da vari computer e con vari sistemi operativi....... quindi in pratica cercavo qualche consiglio su come farlo.....
Un metodo "universale" che mi viene in mente è comprimere i file (ad esempio in .zip) e mettere la password....... ma questo sistema non mi dà molta affidabilità.....
Grazie in anticpipo
Ciao
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Secondo me ti conviene salvare i dati in un database o in un file che sia poi inaccessibile con http. Per esempio salvandoli in un file .php come commento e poi, al momento di ricostruire la scheda per farla scaricare a chi ne ha i permessi, leggere il file / il database e "costruire" la pagina.
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
Re: Proteggere File
scusami ma non ti ho capito...... :-[ :-[
Puoi spiegarti meglio??
Grazie, Ciao
Puoi spiegarti meglio??
Grazie, Ciao
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Da quanto ho capito tu gestisci un sito Internet, o comunque hai accesso a un webserver e ricevi dei dati da organizzare in schede (per esempio con i campi Nome, Cognome, Indirizzo, Posizione, Reddito, Chessoio,...). Più che criptare le schede devi tenere al sicuro i dati. E il metodo più sicuro è tenerli in un database.
Ma forse ho sbagliato e non ho capito bene la situazione. Se non è questa puoi spiegarti meglio?
Ma forse ho sbagliato e non ho capito bene la situazione. Se non è questa puoi spiegarti meglio?
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
Re: Proteggere File
Si più o meno è così......
l'unica cosa però, è che il sito è gestito in un altra maniera ed è un pò un casino usarlo per queste cose......... Quindi io avevo pensato ad uno di quei servizi di Hosting gratuiti...... come ad esempio SkyDrive che, anche se gestito dalla tanto odiata Microsoft, mi dava l'idea di una cosa abbastanza sicura e seria...... e inoltre c'è anche la possibilità di condividere e permettere l'upload solo a determinati account...... (si infatti dovrei farli registrare a msn..... ::) ::))
Senno tu che mi consigli?!? perchè volendo si trova/compra uno spazio web.....
Ciao e Grazie
l'unica cosa però, è che il sito è gestito in un altra maniera ed è un pò un casino usarlo per queste cose......... Quindi io avevo pensato ad uno di quei servizi di Hosting gratuiti...... come ad esempio SkyDrive che, anche se gestito dalla tanto odiata Microsoft, mi dava l'idea di una cosa abbastanza sicura e seria...... e inoltre c'è anche la possibilità di condividere e permettere l'upload solo a determinati account...... (si infatti dovrei farli registrare a msn..... ::) ::))
Senno tu che mi consigli?!? perchè volendo si trova/compra uno spazio web.....
Ciao e Grazie
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
No, non preoccuparti da chi è gestito lo spazio. Se ti mette a disposizione una spazio e hai a disposizione un linguaggio lato server, come php o asp è sufficiente. Se poi hai anche un database, per esempio mysql è ancora meglio.
Se il server supporta php ti poso aiutare io. Se il server è su Windows forse è più probabile che metta a disposizione asp, che io non conosco.
Comunque la mia idea è sempre di separare i dati dalla struttura della pagina web.
Se il server supporta php ti poso aiutare io. Se il server è su Windows forse è più probabile che metta a disposizione asp, che io non conosco.
Comunque la mia idea è sempre di separare i dati dalla struttura della pagina web.
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
Re: Proteggere File
Nel frattempo ho iniziato a provare di capirci qualcosa sui database ecc ecc.... risultato: HO BISOGNO DI AIUTO!!!!
Presupponendo che tu sia disposto a farlo.....Ho visto che altervista mette a disposizione un database mysql (non so che vuol dire, ma senza pagare dice "Potenza minima garantita: 300 queries/h" basta??), o senno immagino ci siano anche altre possibilità......
Ho vsito anche che ci sono degli script per far effettuare il login a qualcuno prima di farlo accedere ecc ecc, ma io in quelle simpatiche tabelline del database non so che metterci.......
Puoi aiutarmi????
Grazie comunque
Ciao
Presupponendo che tu sia disposto a farlo.....Ho visto che altervista mette a disposizione un database mysql (non so che vuol dire, ma senza pagare dice "Potenza minima garantita: 300 queries/h" basta??), o senno immagino ci siano anche altre possibilità......
Ho vsito anche che ci sono degli script per far effettuare il login a qualcuno prima di farlo accedere ecc ecc, ma io in quelle simpatiche tabelline del database non so che metterci.......
Puoi aiutarmi????
Grazie comunque
Ciao
Re: Proteggere File
Adesso che sto iniziando a prendere un minimo di confidenza con questi database (ma proprio un minimo), credo che non ci siamo capiti bene............
Ti speigo meglio il mio "problema"....
In pratica io avevo creato un "modulo" (in html) di un paio di pagine che và compilato al computer.....
Tipo uno di quei moduli che devi compilare alle poste per fare qualcosa hai presente?? solo che quelli sono cartacei.....
Insomma, una volta compilato questo "modulo" avevo la necessità di caricarli su internet in modo che io (o chi di dovere) ci possa accedere ovunque sia....
La mia idea iniziale era di caricare i file in Skydrive, un sito sul quale puoi hostare i tuoi file e per accederci devi fare il login con l'account di msn.......
In più, essendo dei file personali, io volevo criptare i moduli, in modo che se anche qualcuno riuscisse a loggarsi e ad accedere ai file, trovava il file criptato.....
Ma il problema è che i moduli non sono pochi, e quindi per ognuno bisognava creare un archivio, metterlo nell'archivio, mettere la password e caricarlo su Skydrive.......
Poi tu mi hai detto la questione del database, ma non so se i database possono prestarsi a questi moduli di un paio di pagine l'una......
Insomma io non sapendone niente ho preferito fare chiarezza sulla questione per prevenire dei fraintendimenti........
Grazie
Ciao
Ti speigo meglio il mio "problema"....
In pratica io avevo creato un "modulo" (in html) di un paio di pagine che và compilato al computer.....
Tipo uno di quei moduli che devi compilare alle poste per fare qualcosa hai presente?? solo che quelli sono cartacei.....
Insomma, una volta compilato questo "modulo" avevo la necessità di caricarli su internet in modo che io (o chi di dovere) ci possa accedere ovunque sia....
La mia idea iniziale era di caricare i file in Skydrive, un sito sul quale puoi hostare i tuoi file e per accederci devi fare il login con l'account di msn.......
In più, essendo dei file personali, io volevo criptare i moduli, in modo che se anche qualcuno riuscisse a loggarsi e ad accedere ai file, trovava il file criptato.....
Ma il problema è che i moduli non sono pochi, e quindi per ognuno bisognava creare un archivio, metterlo nell'archivio, mettere la password e caricarlo su Skydrive.......
Poi tu mi hai detto la questione del database, ma non so se i database possono prestarsi a questi moduli di un paio di pagine l'una......
Insomma io non sapendone niente ho preferito fare chiarezza sulla questione per prevenire dei fraintendimenti........
Grazie
Ciao
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Ah, ora ho capito... (good) Effettivamente hai ragione, il database è inutile in questo caso. (bad)
Immagino che oltre ai moduli ci siano anche delle pagine PHP che prendono i dati e li immagazzinano in qualche modo, no? Comunque non è questo il punto. Il punto è: noi facciamo una pagina .php; all'inizio del file, lo script controlla se l'utente ha i premessi necessari: se non li ha, allora mostra all'utente la pagina per autenticarsi (scrivere la password); se invece li ha perché ha già scritto la sua password, lo script gli mostra la pagina con il modulo. Forse sembra difficile, ma se vuoi ti aiuti io.
La struttura è questa:
Più o meno, è tutto qui.
Immagino che oltre ai moduli ci siano anche delle pagine PHP che prendono i dati e li immagazzinano in qualche modo, no? Comunque non è questo il punto. Il punto è: noi facciamo una pagina .php; all'inizio del file, lo script controlla se l'utente ha i premessi necessari: se non li ha, allora mostra all'utente la pagina per autenticarsi (scrivere la password); se invece li ha perché ha già scritto la sua password, lo script gli mostra la pagina con il modulo. Forse sembra difficile, ma se vuoi ti aiuti io.
La struttura è questa:
Codice: Seleziona tutto
<?
session_start();
if(isset($_SESSION['auth'])) $auth = true; else $auth = false;
$pass = <<<PASS
<html>
<head>
<!-- Pagina con la richiesta della password -->
</html>
PASS;
$modulo = <<<MOD
<html>
<!-- Pagina con il modulo, da mostrare solo se l'utente è autenticato. -->
</html>
MOD;
if($auth) print $modulo; else print $pass;
?>
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
- fortAlamo
- Scoppiettante Seguace

- Messaggi: 427
- Iscrizione: martedì 1 marzo 2005, 9:55
- Località: dimensione parallela
Re: Proteggere File
scusate l'intrusione, ma metto un "memo" al post per eventuali future ...ficiurs 
grazie
grazie
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Accidenti, perché non ci ho mai pensato io per avere aggiornamenti sui topic che mi interessano ma in cui non ho mai postato?fortAlamo ha scritto: scusate l'intrusione, ma metto un "memo" al post per eventuali future ...ficiurs
grazie
Comunque non si offende nessuno se scrivi più grande... (rotfl)
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
Re: Proteggere File
Ma è paranoia pensare che i file non siano comunque protetti????

Il fatto è che noi con lo script proteggiamo solo "l'indice" in cui sono elencati i file..... ma i file su internet ci sono comunque........
Io parlo per assurdo perchè, ripeto, non so se sia una cosa possibile o meno, ma è fattibile che qualcuno in qualche modo riesca ad avere accesso ai file??
Grazie mille per la disponibilità e scusami per le preoccupazioni
Ciao
Il fatto è che noi con lo script proteggiamo solo "l'indice" in cui sono elencati i file..... ma i file su internet ci sono comunque........
Io parlo per assurdo perchè, ripeto, non so se sia una cosa possibile o meno, ma è fattibile che qualcuno in qualche modo riesca ad avere accesso ai file??
Grazie mille per la disponibilità e scusami per le preoccupazioni
Ciao
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Ma io sono proprio cretino, tra una cosa e l'altra mi ero dimenticato... Scusa :-[
Per farti capire che l'idea è sicura: immagina la situazione in cui in una pagina gli utenti registrati vedono la scritta "Sei un utente registrato", quelli non registrati vedono la scritta: "Fila via, qui non ti vuole nessuno!". Metti che il tipo di protezione non è utente-password, ma semplicemente password (ossia: per accedere basta sapere la password che è uguale per tutti, non c'è un sistema di utenti e password personali). In una pagina (login.html) si mette il form per il login:
In un altra pagina (controllo.php) si controlla se la password è giusta, e se lo è si mostra la stringa per gli utenti registrati, altrimenti si mostra l'altra stringa:
In questo modo non c'è alcuna speranza, per l'utente senza password, di veder stampata sul browser la frase "Sei un utente registrato". Allo stesso modo, per intenderci, un eventuale utente che non potesse non scrivere la password in modo corretto, non potrebbe mai vedere la frase "Fila via, qui non ti vuole nessuno!". La frase che ci interessa (quella di bevenuto) sarebbe sì presente in un file disponibile a tutti, ma presente sotto forma di stringa in uno script PHP, che ci fa quello che vuoi tu. In questo caso la condizione necessaria è che la variabile passata come post e chiamata 'pass' sia uguale a "passwordsegretissima".
Il tuo caso è identico, solo che la stringa di benvenuto è sostituita da una ben più lunga stringa, che rappresenta il codice HTML di una pagina con un modulo.
Se hai diversi moduli, chiamati 'modulo1', 'modulo2' ecc., prova a inserire nel tuo spazio questi file:
login.html:
controllo.php:
modulo1.php
E così per gli altri moduli.
La dicitura <<<MOD introduce una stringa allo stesso modo delle virgolette, ma in questo modo puoi organizzare meglio il tuo spazio. La stringa finisce con la riga MOD; (che non fa parte della stringa). Tra <<<MOD e MOD; puoi inserire sia le virgolette che gli apici senza paura.
Se hai ancora domande, io sono qui.
Per farti capire che l'idea è sicura: immagina la situazione in cui in una pagina gli utenti registrati vedono la scritta "Sei un utente registrato", quelli non registrati vedono la scritta: "Fila via, qui non ti vuole nessuno!". Metti che il tipo di protezione non è utente-password, ma semplicemente password (ossia: per accedere basta sapere la password che è uguale per tutti, non c'è un sistema di utenti e password personali). In una pagina (login.html) si mette il form per il login:
Codice: Seleziona tutto
<html>
<head>
<title>Pagina di login</title>
</head>
<body>
<form action="controllo.php" method="post">
Inserisci la password: <input type="password" name="pass" /><br />
<input type="submit" value="Accedi">
</form>
</body>
</html>
Codice: Seleziona tutto
<?
$benvenuto = "Sei un utente registrato";
$vattene = "Fila via, qui non ti vuole nessuno!";
if ($_POST['pass'] == "passwordsegretissima") print $benvenuto;
else print $vattene;
?>
Il tuo caso è identico, solo che la stringa di benvenuto è sostituita da una ben più lunga stringa, che rappresenta il codice HTML di una pagina con un modulo.
Se hai diversi moduli, chiamati 'modulo1', 'modulo2' ecc., prova a inserire nel tuo spazio questi file:
login.html:
Codice: Seleziona tutto
<html>
<head>
<title>Pagina di login</title>
</head>
<body>
<h1>Scegli il modulo che vuoi vedere</h1>
<form action="controllo.php" method="post">
Modulo:
<select name="modulo">
<option value="1">Modulo 1</option>
<option value="2">Modulo 2</option>
<option value="3">Modulo 3</option>
<option value="4">Modulo 4</option>
<option value="5">Modulo 5</option>
<option value="6">Modulo 6</option>
</select><br />
Inserisci la password: <input type="password" name="pass" /><br />
<input type="submit" value="Accedi">
</form>
</body>
</html>
Codice: Seleziona tutto
<?
if ($_POST['pass'] == "inseriscilatuapassword") include("modulo" . $_POST['modulo'] . ".php");
else $testo = "La password è sbagliata.";
print $testo;
?>
Codice: Seleziona tutto
<?
$testo = <<<MOD
Codice HTML del modulo numero 1.
MOD;
?>
La dicitura <<<MOD introduce una stringa allo stesso modo delle virgolette, ma in questo modo puoi organizzare meglio il tuo spazio. La stringa finisce con la riga MOD; (che non fa parte della stringa). Tra <<<MOD e MOD; puoi inserire sia le virgolette che gli apici senza paura.
Se hai ancora domande, io sono qui.
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
- Zenone
- Imperturbabile Insigne

- Messaggi: 2712
- Iscrizione: martedì 19 settembre 2006, 12:10
- Località: Siena
- Contatti:
Re: Proteggere File
Scusate se mi intrometto...
inviare una password in chiaro non è una furbata:-)
potresti mettere tutto in md5 e fare il controllo sull'md5 della password!
E se qualcuno accedesse direttamente al file senza passare per la pagina di login?
inviare una password in chiaro non è una furbata:-)
potresti mettere tutto in md5 e fare il controllo sull'md5 della password!
E se qualcuno accedesse direttamente al file senza passare per la pagina di login?
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Prima la seconda domanda: se uno scavalca la pagina di login la variabile pass inviata tramite post non esiste, quindi è di sicuro diversa dalla password da inserire. È quasi come se nel campo in cui scrivere la password avesse lasciato in bianco. Se invece ti riferisci ai file modulo1.php e così via, l'interprete php istanzierà una variabile, poi lo script finisce senza restituire niente. Con la variabile non ci fa niente, tantomeno passarla al client. Quindi il tizio vedrebbe una pagina bianca. Per rendere la cosa ancora più sicura si potrebbe fare un redirect alla pagina riguardante l'errore 404, in modo che chiunque arrivi a quella pagina creda che essa non esista, e quindi non tenti neanche di leggerla, cosa che comunque sarebbe impossibile, dato che il demone http, prima di passarla, la darebbe comunque in pasto all'interprete php, che restituirebbe niente, o, appunto il redirect alla pagina di 404.
Quanto alle password in chiaro, o si fa uno script javascript sulla pagina login.html, implementando le funzioni md5, in modo da criptare in questo modo la password prima di mandarla (cosa che però potrebbe andare a scapito dell'accessibilità), oppure, meglio, si usa il protocollo https al posto dell'http, ma qui dipende dal servizio di hosting: se questo non offre la connessione criptata con SSL, c'è poco da fare. Hai altre soluzioni?
Quanto alle password in chiaro, o si fa uno script javascript sulla pagina login.html, implementando le funzioni md5, in modo da criptare in questo modo la password prima di mandarla (cosa che però potrebbe andare a scapito dell'accessibilità), oppure, meglio, si usa il protocollo https al posto dell'http, ma qui dipende dal servizio di hosting: se questo non offre la connessione criptata con SSL, c'è poco da fare. Hai altre soluzioni?
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
- Zenone
- Imperturbabile Insigne

- Messaggi: 2712
- Iscrizione: martedì 19 settembre 2006, 12:10
- Località: Siena
- Contatti:
Re: Proteggere File
Okay, ma non ho capito una cosa. Se apro direttamente la pagina modulo1.php..perché mi rimane bianca?
$testo viene assegnato qui...
Per il resto l'md5 lo trovo decisamente più semplice.
Codice: Seleziona tutto
<?
$testo = <<<MOD
Codice HTML del modulo numero 1.
MOD;
?>Per il resto l'md5 lo trovo decisamente più semplice.
- Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Perché mai dovrebbe stampare qualcosa? Se sai come funziona un web-server, come apache non hai dubbi: il client richiede la pagina modulo1.php. Il web-server prende la pagina; visto che la pagina ha estensione .php, il web-server, prima di passare i dati al client, da la pagina all'interprete php; php restituisce direttamente il codice HTML fuori dai delimitatori (ma visto che non c'è niente fuori dai delimitatori...); quanto sta all'interno, invece è solo codice php: c'è una variabile, che viene istanziata, e poi non c'è nient'altro, nessuna istruzione print, echo, print_f, niente di niente. Qundi l'interprete php restituisce una pagina vuota. A questo punto il web-server restituisce la pagina al client, che però è vuota.
md5: sì, certo, ma puoi fare un esempio per spiegare esattamente come lo implementaresti?
md5: sì, certo, ma puoi fare un esempio per spiegare esattamente come lo implementaresti?
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
- Zenone
- Imperturbabile Insigne

- Messaggi: 2712
- Iscrizione: martedì 19 settembre 2006, 12:10
- Località: Siena
- Contatti:
Re: Proteggere File
Codice: Seleziona tutto
//javascript per calcolare l'md5
<script type="text/javascript" src="md5.js"></script>
<script type="text/javascript">
<!--
function encrypt () {
var psw = document.login.psw.value ;
if (psw) {
psw = hex_md5(psw) ;
document.login.psw.value = '' ;
document.login.md5.value = psw ;
}
}
// -->
</script>
<form name="login" method="post" action="entra.php" onsubmit="encrypt () ">
Nome utente: <input type="text" name="username">
Password <input type="password" name="psw">
<input type="hidden" name="md5" value="">
<input type="hidden" name="login" value="1">
<input type="submit" value="Login">
</form> - Spiros
- Entusiasta Emergente

- Messaggi: 1100
- Iscrizione: martedì 21 marzo 2006, 15:11
- Località: Zurigo
Re: Proteggere File
Sì, in mancanza di una connessione criptata si può fare così.
@Polonio: se vuoi implementare la funzione di Zenone, che garantisce anche che un eventuale cracker inseritosi tra server e client possa leggere la password, devi solo aggiungere nella cartella in cui sono contenuti i tuoi file anche il file md5.js (Zenone, puoi postarlo se ce l'hai? altrimenti io forse ho una mezza idea su dove reperirne uno) e usare il codice che ha appena postato. Inoltre nella pagina del controllo devi sostituire if ($_POST['pass'] == "passwordsegretissima") con if ($_POST['pass'] == md5("passwordsegretissima")).
@Polonio: se vuoi implementare la funzione di Zenone, che garantisce anche che un eventuale cracker inseritosi tra server e client possa leggere la password, devi solo aggiungere nella cartella in cui sono contenuti i tuoi file anche il file md5.js (Zenone, puoi postarlo se ce l'hai? altrimenti io forse ho una mezza idea su dove reperirne uno) e usare il codice che ha appena postato. Inoltre nella pagina del controllo devi sostituire if ($_POST['pass'] == "passwordsegretissima") con if ($_POST['pass'] == md5("passwordsegretissima")).
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
- Zenone
- Imperturbabile Insigne

- Messaggi: 2712
- Iscrizione: martedì 19 settembre 2006, 12:10
- Località: Siena
- Contatti:
Re: Proteggere File
Codice: Seleziona tutto
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
/*
* Perform a simple self-test to see if the VM is working
*/
function md5_vm_test()
{
return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length
*/
function core_md5(x, len)
{
/* append padding */
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
* Calculate the HMAC-MD5, of a key and some data
*/
function core_hmac_md5(key, data)
{
var bkey = str2binl(key);
if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
var ipad = Array(16), opad = Array(16);
for(var i = 0; i < 16; i++)
{
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5C5C5C5C;
}
var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
return core_md5(opad.concat(hash), 512 + 128);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
/*
* Convert a string to an array of little-endian words
* If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
*/
function str2binl(str)
{
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz)
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
return bin;
}
/*
* Convert an array of little-endian words to a string
*/
function binl2str(bin)
{
var str = "";
var mask = (1 << chrsz) - 1;
for(var i = 0; i < bin.length * 32; i += chrsz)
str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
return str;
}
/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
}
/*
* Convert an array of little-endian words to a base-64 string
*/
function binl2b64(binarray)
{
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789+/";
var str = "";
for(var i = 0; i < binarray.length * 4; i += 3)
{
var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
| (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
| ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
for(var j = 0; j < 4; j++)
{
if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
}
}
return str;
}Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti