Prøv at se mit indlæg i denne tråd, som kort skitserer hvordan en logon procedure kan laves.
http://www.udvikleren.dk/Thread.aspx/12/18653/Dvs. man bruger en bruger tabel som defineret nedenfor:
USER_GUID er automatisk genereret. (optional column)
EMAIL er bruges e-mail adresse / brugernavn.
PWD_HASH er den beregnet hashværdi af brugerens adgangskode sammen med salt'en.
PWD_SALT er den salt som adgangskoden er lagt sammen med inden hashværdien beregnes.
DISABLED er blot en bit der indikerer om kontoen er deaktiveret.
CREATE TABLE [dbo].[USER] (
[USER_GUID] uniqueidentifier ROWGUIDCOL NOT NULL ,
[EMAIL] [varchar] (255) NOT NULL ,
[NAME] [varchar] (255) NULL ,
[PWD_HASH] [varchar] (255) NOT NULL ,
[PWD_SALT] [image] NULL ,
[DISABLED] [int] NOT NULL
)
GO
ALTER TABLE [dbo].[USER] WITH NOCHECK ADD
CONSTRAINT [PK_USER] PRIMARY KEY CLUSTERED
(
[EMAIL]
)
GO
ALTER TABLE [dbo].[USER] WITH NOCHECK ADD
CONSTRAINT [DF_USER_USER_GUID]
DEFAULT (newid()) FOR [USER_GUID],
CONSTRAINT [DF_USER_DISABLED] DEFAULT (0)
FOR [DISABLED]
GO
Verificer et logon ved at beregne hashværdien af den nyligt indtastede adgangskode sammenlagt med din salt fra databasen. Den nyberegnede hashværdi sammenlignes så med den som er gemt i databasen. Er de to identiske, så er adgangskoden OK.
Se en mere uddybende forklaring af dette i en artikel jeg tidligere har skrevet på codeproject.
http://www.codeproject.com/cpp/HashingCryptoAPI.aspHth
Indlæg senest redigeret d. 11.04.2007 16:34 af Bruger #10448