posts - 315, comments - 268, trackbacks - 15

My Links

News

View Pietro Libro's profile on LinkedIn

DomusDotNet
   DomusDotNet

Pietro Libro

Tag Cloud

Article Categories

Archives

Post Categories

Blogs amici

Links

MD5

Causa la necessità di memorizzare dati non in chiaro e di utilizzare l'algoritmo MD5, mi sono creato una piccola classe helper, che a sua volta utilizza la classe System.Security.Cryptography.MD5. Il codice della classe è il seguente:

1 private string _dummyString = "!@HASH#!";
2 System.Security.Cryptography.MD5 _md5 = null;
3 public MD5Helper (){
4 5 _md5 = System.Security.Cryptography.MD5.Create();
6 }
7 8 public byte[] ComputeHash(string text)
9 {
10 if (!string.IsNullOrEmpty(text))
11 {
12 //Concatena il testo da cifrare con una stringa 13 text += _dummyString;
14 //Ritorna l'array di byte 15 byte[] hashedBytes = _md5.ComputeHash(System.Text.UTF8Encoding.UTF8.GetBytes(text));
16 return hashedBytes;
17 }else{
18 throw new ArgumentException("Il valore del parametro text non può essere Null o Vuoto");
19 }
20 }
21 22 public bool Verify(string text, byte[] hashedBytes)
23 {
24 try 25 {
26 if (!string.IsNullOrEmpty(text))
27 {
28 //Computa l'hash 29 byte[] verifyHashedBytes = ComputeHash(text);
30 string str1= BitConverter.ToString(verifyHashedBytes).Replace ("-","");
31 string str2 = BitConverter.ToString(hashedBytes).Replace("-", "");
32 return str1.Equals(str2);
33 }
34 else 35 {
36 throw new ArgumentException("Il valore del parametro textToValidate non può essere Null o Vuoto");
37 }
38 }
39 catch
40 {
41 return false;
42 }
43 }
44 45 public void Close()
46 {
47 _md5.Clear();
48 }

Esempio di utilizzo:

1 MD5Helper md5 = new MD5Helper();
2 hashed = md5.ComputeHash("PIPPO");
3 MessageBox.Show(md5.Verify("PIPPO", hashed).ToString ());

 

Technorati Tag:

Print | posted on martedì 8 aprile 2008 19:30 | Filed Under [ C# ]

Feedback

Gravatar

# re: MD5

quando di crea un MD5 in genere di password e' bene aggiungere il salt altrimenti sei soggetto ad attacchi con le rainbowtables ....

HTH
09/04/2008 17:46 | spleen
Gravatar

# re: MD5

Grazie per il suggerimento. Appena possibile apporto la modifica alla classe e la riposto
10/04/2008 12:31 | Pietro Libro
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET