martedì 15 novembre 2016

Come criptare / decriptare una password in ASP classic

Se stai sviluppando un'area riservata in asp classic, magari con salvataggio delle password nel database, è cosa buona e giusta non salvare mai le password in chiaro.
Online si trovano diversi modi per criptare una password per metterla al sicuro da occhi indiscreti, ed ovviamente si trovano anche script per decriptare password sempre tramite asp... vediamone subito uno.


Come criptare / decriptare una password in ASP classic


Se vuoi cifrare una password in modo che sia illeggibile in caso il tuo database venga violato, ho una funzione asp che fa al caso tuo:

<%
Function criptapwd(pwd)
    chiavi=mid("<87?@/](76O,V$)HV.:RNPE'@IBC?#L:*@&,5LCSB*8'F4[=J]QU,NTZ:X`E`BZF]TVHJG'77/=]OE\XZB\K>843VN[",1,100)
    stringacript=""
    for i=1 to len(pwd)
        caratteri=Asc(mid(chiavi,i,1))
        stringa=Asc(mid(pwd,i,1))
        charcript=caratteriXor stringa
        stringacript=stringacript&Chr(charcript)
    next
    criptapwd=stringacript
End Function

%>

Con questa semplice funzione potremo criptare una password o una stringa di testo in generale, in maniera artigianale ma sicura da occhi indiscreti.

Per cifrare la password "Verde" ad esempio, potremmo scrivere così per vedere a video il risultato:
response.write criptapwd("Verde")

La password "Verde" verrà tramutata in questa indecifrabile stringa: j]E[%

Ma se volessimo decriptare la password appena mascherata in asp?
Semplice, ci basterebbe utilizzare questa funzione di decriptazione asp:

Function decriptapwd(pwd)
    chiavi=mid("<87?@/](76O,V$)HV.:RNPE'@IBC?#L:*@&,5LCSB*8'F4[=J]QU,NTZ:X`E`BZF]TVHJG'77/=]OE\XZB\K>843VN[",1,100)
    stringadecript=""
    for i=1 to Len(pwd)
        caratteri=(Asc(mid(chiavi,i,1)))
        stringa=Asc(mid(pwd,i,1))
        chardecript=caratteri Xor stringa
        stringadecript=stringadecript&Chr(chardecript)
    next
    decriptapwd=stringadecript
End Function


Se infatti volessimo riottenere la password "Verde", ci basterebbe incollare il codice criptato in precedenza, in questo modo:
response.write "<br>"&decriptapwd("j]E[%")

Avremo così decriptato la password criptate in precedenza, in modo da poterla leggere di nuovo in chiaro.

PS Ovviamente un algoritmo di criptaggio password serio non è decriptabile, tuttavia questa soluzione amatoriale va benissimo per lavori non troppo delicati, o per siti che non contengono dati troppo sensibili (es. carte di credito).

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon