MembershipPasswordFormat Enum

Definition

Beskriver krypteringsformatet för lagring av lösenord för medlemskapsanvändare.

public enum class MembershipPasswordFormat
public enum MembershipPasswordFormat
type MembershipPasswordFormat = 
Public Enum MembershipPasswordFormat
Arv
MembershipPasswordFormat

Fält

Name Värde Description
Clear 0

Inte säker, använd inte. Lösenord krypteras inte.

Hashed 1

Lösenord krypteras enkelriktat med sha1-hashalgoritmen. Du kan ange en hash-algoritm som skiljer sig från SHA1-algoritmen med hjälp av attributet hashAlgorithmType .

På grund av kollisionsproblem med SHA1 rekommenderar Microsoft SHA256.

Encrypted 2

Inte säker, använd inte. Lösenord krypteras med hjälp av krypteringsinställningarna som bestäms av machineKey-elementkonfigurationen.

Exempel

I följande exempel visas elementet machineKey (ASP.NET Settings Schema) i avsnittet system.web i filen Web.config för ett ASP.NET program. Den anger programmets instans och anger dess lösenordsformat SqlMembershipProvider till Hashed.

I det här exemplet används SHA1. På grund av kollisionsproblem med SHA1 rekommenderar Microsoft SHA256.

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

Kommentarer

Klassen SqlMembershipProvider har stöd för olika format för lösenordslagring, men du bör bara använda Hashedoch ClearEncrypted är inte säker. Tydliga lösenord är inte säkra och bör inte användas. De lagras i oformaterad text. Krypterade lösenord anses inte vara säkra, eftersom ett intrång som avslöjar ditt databasinnehåll också kan exponera krypteringsnyckeln. Det innebär att dina krypterade lösenord kan dekrypteras och exponeras. Lösenord krypteras när de lagras och kan dekrypteras för lösenordsjämförelse eller lösenordshämtning. Hashade lösenord krypteras med hjälp av en enkelriktad saltad hash när de lagras i databasen. När ett lösenord verifieras kombineras det med ett saltvärde och hashas sedan. Resultatet jämförs med värdet i databasen för verifiering. Hashade lösenord kan inte hämtas.

Note

Om du inte är bekant med medlemskapsfunktionerna i ASP.NET kan du läsa Introduction to Membership innan du fortsätter. En lista över andra ämnen som rör medlemskap finns i Hantera användare med hjälp av medlemskap.

Gäller för

Se även