public class PasswordDeriveBytes : DeriveBytes { // Public Constructors public PasswordDeriveBytes(string strPassword, byte[ ] rgbSalt); public PasswordDeriveBytes(string strPassword, byte[ ] rgbSalt, CspParameters cspParams); public PasswordDeriveBytes(string strPassword, byte[ ] rgbSalt, string strHashName, int iterations); public PasswordDeriveBytes(string strPassword, byte[ ] rgbSalt, string strHashName, int iterations, CspParameters cspParams); // Public Instance Properties public string HashName{set; get; } public int IterationCount{set; get; } public byte[ ] Salt{set; get; } // Public Instance Methods public byte[ ] CryptDeriveKey(string algname, string alghashname, int keySize, byte[ ] rgbIV); public override byte[ ] GetBytes(int cb); // overrides DeriveBytes public override void Reset( ); // overrides DeriveBytes// Protected Instance Methods protected override void Finalize( ); // overrides object }
This class extends the abstract DeriveBytes class and generates symmetric key values by applying a hash algorithm to a password string. The HashName property specifies the hash algorithm to use and the IterationCount property indicates how many times the hash algorithm will be applied in order to create the symmetric key value.