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
App. WinForms / WPF .NET
Crittografia dati
martedì 30 gennaio 2007 - 16.50
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
AndreaBelmonte
Profilo
| Newbie
33
messaggi | Data Invio:
mar 30 gen 2007 - 16:50
Ciao,
sto sviluppando un'applicazione windows che si occupa di inserire su db una serie di dati sensibili, uno dei quali (codice_fiscale) deve essere criptato crittografato utilizzando una chiave pubblica RSA ed applicando il padding PKCS#1 v 1.5; oltre a questo, in fase di inserimento su db il dato crittografato dovrà essere codificato BASE64 (RFC 1521).
Premesso che è la primissima volta che affronto il problema crittografia con .Net, qualcuno può aiutarmi a capire da dove si comincia?
Grazie,
Andrea
us01739
Profilo
| Expert
641
messaggi | Data Invio:
mar 30 gen 2007 - 16:53
Per iniziare prova a dare un'occhiata qui:
http://www.dotnethell.it/articles/RijndaelAlgorithm.aspx
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
AndreaBelmonte
Profilo
| Newbie
33
messaggi | Data Invio:
mar 6 feb 2007 - 05:43
Ciao,
ti ringrazio - anche se in ritardo - per la risposta; ho letto l'articolo ed ho le idee un pò più chiare, anche se il mio problema è forse un pò particolare.
Dovrò infatti, criptare con padding PKCS#1 v 1.5 una stringa, avvalendomi di una chiave pubblica presente su di un file di certificato .cer.
Nella mia classe, in uno dei vani tentativi, ho scritto questo codice, ma ottengo l'errore "dimensioni della chiave troppo grandi per l'algoritmo usato":
sCodAssistito = drDettRic.GetValue(8).ToString();
RijndaelManaged rjm = new RijndaelManaged();
string Chiave = "2d 73 b7 10 71 f1 20 a7 eb 4f 4b e1 6a d2 7b a9 39 7d a8 e4";
rjm.KeySize = 1024;
rjm.BlockSize = 1024;
rjm.Key = ASCIIEncoding.ASCII.GetBytes(Chiave);
Byte[] input = Encoding.UTF8.GetBytes(sCodAssistito);
Byte[] output = rjm.CreateEncryptor().TransformFinalBlock(input, 0, input.Length);
string CodCriptato = Convert.ToBase64String(output);
E' mai capitato a qualcuno di voi di dover lavorare su cose simili?
Grazie,
Andrea
AndreaBelmonte
Profilo
| Newbie
33
messaggi | Data Invio:
ven 9 feb 2007 - 13:46
Ciao,
ho finalmente trovato una soluzione - apparentemente - ottimale.
Avvalendomi dell'interessante componente Chilkat cryypt, disponibile sul sito
http://www.chilkatsoft.com/
(trial di 30 giorni, necessita di pagamento per essere sbloccata), con poche righe di codice sono riuscito a criptare la stringa in oggetto utilizzando una chiave pubblica contenuta in un certificato x.509.
Copio il codice qui sotto, nel caso potesse servire da esempio ad altri:
//Stringa reperita da Db
sCodAssistito = drDettRic.GetValue(8).ToString();
Chilkat.Crypt crypt = new Chilkat.Crypt();
// Any code begins the 30-day trial.
crypt.UnlockComponent("qualsiasi_stringa_sblocca_per_30_giorni");
// Use RSA public-key encryption.
crypt.SetAlgorithmRSA();
// Tell Chilkat Crypt to find and use the first certificate found
// where one of the certificate's subject fields matches the
// string passed here.
//crypt.EncryptCertSubject = "Soggetto del certificato";
Chilkat.Cert cert = new Chilkat.Cert();
bool success = cert.LoadFromFile("mefpp.cer");
if (!success)
{
MessageBox.Show(cert.LastError.ToString());
return;
}
// Tell the crypt object to use the certificate.
crypt.SetEncryptCertificate(cert);
// Encrypt and convert the result bytes to Base-64.
byte [] encryptedBytes = crypt.EncryptStr(sCodAssistito);
String sCodCriptato = crypt.EncodeBase64(encryptedBytes);
Andrea Belmonte
www.andreabelmonte.com
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 !