I have some questions on the MembershipProvider in .Net that I have been unable to find clear answers to.
- What type of encryption is used, AES?
 
- The method EncryptPassword, can it handle any salt, or do I simply add that before passing it?
 
- The method DecryptPassword - can you really decrypt the password?  Isn't that a poor practice to be able to do?
 
Thank you for the input!
                 
                                                                            
                            add Element for providers for membership (ASP.NET Settings Schema)
- 
enablePasswordRetrieval attribute: "Specifies whether the membership provider instance supports password retrieval. If true, the membership provider instance supports password retrieval  The default is false for both the SQL and Active Directory providers."
 
- 
passwordFormat attribute: "One of the MembershipPasswordFormat values that indicates the format for storing passwords in the membership data store. The default is Hashed."
- 
Hashed: "Passwords are encrypted one-way using the SHA1 hashing algorithm.
You can specify a hashing algorithm different than the SHA1 algorithm using the hashAlgorithmType attribute."
 
- 
Encrypted: "Encrypted Passwords are encrypted using the encryption settings determined by the machineKey Element (ASP.NET Settings Schema) element configuration."
 
 
So, by default the SqlMembershipProvider uses a hashed (one-way) password that is hashed with SHA1.  Hashing the passwords doesn't use the EncryptPassword/DecryptPasswords methods, but no, you cannot manually pass salts to Encryption/Encoding of passwords (it salts them for you).