Molto spesso mi è capitato di dover crittografare delle stringhe da ASP, ma non ho mai trovato un componente ActiveX gratuito, sia pure un semplice DES.
Per questo ho deciso di imparare a scrivere componenti COM con VC++ e di svilupparne uno io stesso.
Come algoritmo ho scelto il Cast128. Si tratta di un algoritmo di crittografia di tipo "simmetrico"; ciò vuol dire che la chiave di crittografia deve essere la stessa per per criptare e decriptare.
La lunghezza massima della chiave è 128 bit, mentre i dati devono essere forniti in blocchi da 64 bit.
Il componente accetta come input stringhe di lunghezza arbitraria e restituisce il risultato codificato in bas64, in modo da poterlo trattare ancora come stringa.
E' possibile tuttavia usarlo anche con degli array (contenenti unsigned byte 8 bit), ma a patto che contengano un numero di elementi che sia multiplo di 8 (vi ricordo che il Cast128 accetta blocchi da 64 bit in input, cioè 8 byte alla volta). L'output in tal caso sara' l'array originale coi dati criptati.
Infine, è possibile usare indipendentemente dal Cast128 i metodi di codifica e decodifica bas64, per codificare sia stringhe che array di byte.
Ecco un esempio d'uso del componente, i cookies criptati.
<%
REM Settaggio di un cookie:
dim CastKey, MyServer, MyUserName, MyPassword, objCast128
CastKey = "pass"
MyServer = "mail.anon.net"
MyUserName = "goku"
MyPassword = "songoku"
set objCast128 = server.createObject("cast.cipher")
response.cookies("CookieName")("server") = objCast128.cast128encode(CastKey , MyServer )
response.cookies("CookieName")("login") = objCast128.cast128encode(CastKey , MyUserName )
response.cookies("CookieName")("password") = objCast128.cast128encode(CastKey, MyPassword)
set objCast128 = Nothing
Response.Cookies("CookieName").Expires = dateadd("d",10,date)
Response.Cookies("maiCookieNamelclient").Domain = "www.anon.net"
Response.Cookies("CookieName").Path = "/"
Response.Cookies("CookieName").Secure = false
REM Recupero di un cookie criptato:
dim CastKey, MyServer, MyUserName, MyPassword, objCast128,
encodedMyUserName, encodedMyPassword, encodedMyServer
CastKey = "pass"
encodedMyUserName = request.cookies("CookieName")("login")
encodedMyPassword = request.cookies("CookieName")("password")
encodedMyServer = request.cookies("CookieName")("server")
set objCast128 = server.createObject("cast.cipher")
MyUserName= objCast128.cast128decode("pass", encodedMyUserName )
MyPassword= objCast128.cast128decode("pass", encodedMyPassword )
MyServer= objCast128.cast128decode("pass", encodedMyServer )
set objCast128 = Nothing
%>Se avete idee per delle modifiche o aggiunte, potete contattarmi.
La documentazione completa del componente si trova su:
http://www.paipai.net/texts/asp-cast128-1.1ita.htm
Nota: Questo script contiene un allegato.
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Download


