Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
La crittografia e la classe Rijndael
sabato 24 luglio 2004 - 10.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Trinità
Profilo
| Junior Member
62
messaggi | Data Invio:
sab 24 lug 2004 - 10:00
ho letto quest'articolo semrpe su dotnethell, e mi sono costruito una classe che mi fà codifica e decodifica, fantastico.
Il tutto funziona, solo che vorrei utilizzare questa classe per codificare, e successivamente decodificare, parametri che vengono passati via query string
mi servirebbero delle ottimizzazioni al codice che non sono riuscito ad apportare.
1) passa mi piacerebbe che la stringa criptata fosse più corta
2) devo impedire che nella stringa criptata ci siano caratteri "speciali" tipo "+", "=", "/" che mi incasinerebbero la querystring
come posso fare ?
questo sotto è la versione VB.net della funzione che cripta
Public Function ax_crypt(ByVal S As String) As String
Dim rjm As New RijndaelManaged
rjm.KeySize = 128
rjm.BlockSize = 128
rjm.Key = ASCIIEncoding.ASCII.GetBytes(chiave)
rjm.IV = ASCIIEncoding.ASCII.GetBytes(iv)
Dim input As [Byte]() = Encoding.UTF8.GetBytes(S)
Dim output As [Byte]() = rjm.CreateEncryptor().TransformFinalBlock(input, 0, input.Length)
Return Convert.ToBase64String(output)
End Function
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
sab 24 lug 2004 - 23:21
Ciao,
avere una stringa criptata più corta è un po' diffiicile.... l'algoritmo è quello e non si può fare molto.
Per passare invece contenuti via QueryString che contengano caratteri particolari come quelli che hai elencato prova a codificare la stringa che passi con questo metodo della classe HttpUtility:
HttpUtility.UrlEncode()
e vedrai che passandoli non avrai problemi perchè vengono codificati in modo corretto, tipo lo spazio viene trasformato in %20 e così via.
ciao
david
Trinità
Profilo
| Junior Member
62
messaggi | Data Invio:
lun 26 lug 2004 - 08:09
Grazie intanto per la tua risposta. Sono riuscito intanto a fare quello che volevo più o meno.
Come algoritmo ho usato RC2 ed inoltre ho impostato le 2 chiavi a 8 caratteri ognuna e il keysize e il block size a 64, così mi pare che la stringa risultante sia più corta.
Infine dopo tanto provare, sono arrivato pure io a fare un urlencode e urldecode e sembra funzionare (inoltre converte anche i caratteri speciali....)
Unico piccolo problema è che io ho la mia classe che cripta e decripta in una dll separata (e voglio che sia così) MI piacerebbe che nella classe facesse lei stessa l'urlencode e decode, solo che non risco ad importare il namespace httputility. Appena arrivo a system.web non ho poi tutte le classi come se lo importassi da una pagina normale....
come posso fare ?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 27 lug 2004 - 00:31
Probabilmente nelle References, devi aggiungere gli assemblies che coprono il namespace in cui c'è HttpUtility. Dalla documentazione esce che il namespace è System.Web e l'assembly System.Web.Dll prova a referneziare quello.
Di solito in VB.NET e in base al tipo di progetto che crei vengono automaticamente refernziate degli Assemblies e importati dei namespaces.
Se invece crei una classe no, perchè potrebbe essere di qualunque tipo quindi tu devi specificare che cosa vuoi.
ciao
david
Trinità
Profilo
| Junior Member
62
messaggi | Data Invio:
mar 27 lug 2004 - 07:52
AH ok, immaginavo una cosa del genere. Quando torno a casa provo.
Pensavo anche di crearmi una classe nel mio progetto web che mi facesse quest'operazione, invece nemmeno lì sono riuscito a trovare il namespace che mi interessa. Sembra sia raggiungibile solo dal code behind di una pagina aspx.
Ma poi provo come dici tu
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !