include::../description.adoc[] include::../recommended.adoc[] == Noncompliant Code Example ---- Public Sub Hash(Password As String) Dim Salt As Byte() = Encoding.UTF8.GetBytes("Hardcoded salt") Dim FromHardcoded As New Rfc2898DeriveBytes(Password, Salt) ' Noncompliant, salt Is hardcoded Salt = Encoding.UTF8.GetBytes(Password) Dim FromPassword As New Rfc2898DeriveBytes(Password, Salt) ' Noncompliant, password should Not be used As a salt As it makes it predictable Dim ShortSalt(7) As Byte RandomNumberGenerator.Create().GetBytes(ShortSalt) Dim FromShort As New Rfc2898DeriveBytes(Password, ShortSalt) ' Noncompliant, salt Is too Short (should be at least 32 bytes, Not 8) End Sub ---- == Compliant Solution ---- Public Function Hash(Password As String) As DeriveBytes Return New Rfc2898DeriveBytes(Password, 64) End Function ---- include::../see.adoc[]