SqlMembershipProvider.PasswordFormat Propriedade

Definição

Obtém um valor que indica o formato para armazenar senhas no banco de dados de associação SQL Server.

public:
 virtual property System::Web::Security::MembershipPasswordFormat PasswordFormat { System::Web::Security::MembershipPasswordFormat get(); };
public override System.Web.Security.MembershipPasswordFormat PasswordFormat { get; }
member this.PasswordFormat : System.Web.Security.MembershipPasswordFormat
Public Overrides ReadOnly Property PasswordFormat As MembershipPasswordFormat

Valor da propriedade

Um dos valores MembershipPasswordFormat, indicando o formato para armazenar senhas no banco de dados SQL Server.

Exemplos

O exemplo de código a seguir mostra o elemento de associação na system.web seção do arquivo Web.config para um aplicativo ASP.NET. Ele especifica a instância do SqlMembershipProvider aplicativo e define seu formato de senha como Hashed.

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
  <providers>
    <add name="SqlProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="SqlServices"
      enablePasswordRetrieval="false"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="true"
      passwordFormat="Hashed"
      applicationName="MyApplication" />
  </providers>
</membership>

Comentários

Use Hashed apenas e ClearEncrypted não esteja seguro. Hashed as senhas são hash usando um algoritmo de hash unidirecional e um valor de sal gerado aleatoriamente quando armazenado no banco de dados. Quando uma senha é validada, ela é hash com o valor de sal no banco de dados para verificação. Senhas com hash não podem ser recuperadas. Encrypted as senhas não são consideradas seguras, pois uma violação que revela o conteúdo do banco de dados também pode expor a chave de criptografia. Isso significa que suas senhas criptografadas podem ser descriptografadas e expostas.

O valor PasswordFormat é especificado na seção providers do arquivo Web.config do aplicativo ASP.NET.

Encrypted e Hashed senhas são criptografadas ou hashadas por padrão com base nas informações fornecidas no elemento machineKey em sua configuração. Observe que, se você especificar um valor 3DES para o validation atributo ou se nenhum valor for especificado, as senhas hash serão hashadas usando o SHA1 algoritmo.

Um algoritmo de hash personalizado pode ser definido usando o atributo hashAlgorithmType do elemento de configuração membership (ASP.NET Settings Schema). Se você escolher criptografia, a criptografia de senha padrão usará a AES. Você pode alterar o algoritmo de criptografia definindo o decryption atributo do elemento de configuração machineKey . Se você estiver criptografando senhas, deverá fornecer um valor explícito para o decryptionKey atributo no elemento machineKey . O valor padrão de AutoGenerate para o atributo decryptionKey não é suportado ao usar senhas criptografadas com associação ASP.NET.

Devido a problemas de colisão com SHA1, Microsoft recomenda um modelo de segurança baseado em SHA256 ou melhor.

Aplica-se a

Confira também