Salted MD5 encryption method is more powerful than MD% encryption algo. in this 1 random number is generated which is attached with password and stored in database
public string ComputeHash(string plainText, byte[] saltBytes) { // If salt is not specified, generate it on the fly. if (saltBytes == null) { // Define min and max salt sizes. int minSaltSize = 4; int maxSaltSize = 8;
// Generate a random number for the size of the salt. Random random = new Random(); int saltSize = random.Next(minSaltSize, maxSaltSize);
// Allocate a byte array, which will hold the salt. saltBytes = new byte[saltSize];
// Initialize a random number generator. RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
// Fill the salt with cryptographically strong byte values. rng.GetNonZeroBytes(saltBytes); }
// Convert plain text into a byte array. byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
// Allocate array, which will hold plain text and salt. byte[] plainTextWithSaltBytes = new byte[plainTextBytes.Length + saltBytes.Length];
// Copy plain text bytes into resulting array. for (int i = 0; i < plainTextBytes.Length; i++) plainTextWithSaltBytes[i] = plainTextBytes[i];
// Append salt bytes to the resulting array. for (int i = 0; i < saltBytes.Length; i++) plainTextWithSaltBytes[plainTextBytes.Length + i] = saltBytes[i];
//object of md5 algo MD5 md5 = new MD5CryptoServiceProvider();
// Compute hash value of our plain text with appended salt. byte[] hashBytes = md5.ComputeHash(plainTextWithSaltBytes);
// Create array which will hold hash and original salt bytes. byte[] hashWithSaltBytes = new byte[hashBytes.Length + saltBytes.Length];
// Copy hash bytes into resulting array. for (int i = 0; i < hashBytes.Length; i++) hashWithSaltBytes[i] = hashBytes[i];
// Append salt bytes to the result. for (int i = 0; i < saltBytes.Length; i++) hashWithSaltBytes[hashBytes.Length + i] = saltBytes[i];
// Convert result into a base64-encoded string. string hashValue = Convert.ToBase64String(hashWithSaltBytes);
// Return the result. return hashValue;
}
|
| Author: Rakesh Thakur 31 Jul 2009 | Member Level: Gold Points : 1 |
Hi Navneet As u have written that (1 random number is generated which is attached with password ). It is not happening here. I Got the same string every time.I want new encrypted string every time ...
|