[mssql] Functie voor encrypt/encode?

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
Hey allen,

Ik ben eigenlijk op zoek naar een manier om in MSSQL een string te nemen en die, net als met PASSWORD() in MySQL, onomkeerbaar te coderen naar een hash-code. Ik wil nml van onze website klanten toelaten door een wachtwoord, maar ik wil ze niet als platte tekst opslaan, om veiligheidsredenen.

Je zou toch verwachten dat een dure db-server als MSSQL zoiets toch wel heeft... Ik heb in ieder geval niets in Books Online en Google kunnen vinden.

日本!🎌


Verwijderd

Waarom zou je dat verwachten? een database is om data op te slaan en of jij nou een hash, cleartext of een foto van je cavia opslaat 't maakt sql server niet uit, als jij 'n hash wil maken mag je dat in je client programmatuur doen (waar het hoort)

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Officieel zit er in MSSQL geen encryptie mogelijkheid. Er zit echter wel een niet gedocumenteerde encryptie functie in. Je kunt die eventueel misbruiken, maar het is dus mogelijk dat het met een nieuwe versie MSSQL niet meer werkt.

Voorbeeld om te encrypten:

UPDATE [User]
SET Password = CAST (pwdencrypt (@Password) AS varbinary (256))
WHERE UserID = @UserID


Voorbeeld om vervolgens te vergelijken (komt uit een stored proc):

DECLARE @pwdCompint
SELECT @pwdComp= pwdcompare (@Password, Password, 0)
FROM [User]
WHERE Login = @Login

IF (ISNULL (@pwdComp, 0) = 0) RAISERROR ('bla bla', 16, 1)

Never underestimate the power of


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Je hebt in mssql ook de mogelijkheid om eigen (extended) stored procedures te maken waarbinnen je dus je hashing algo stopt.
Andere optie is gebruik maken van de niet gedocumenteerde functies: pwdencrypt() en pwdcompare(). Risico van deze is dat niet gegarandeerd wordt dat deze ongewijzigd blijven, MS kan natuurlijk besluiten in een servicepack of nieuwe versie om de functies om te gooien.

/edit: te laat :'(

Today's subliminal thought is:


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
Dat lijkt op zich goed te werken, dat pwdencrypt().
Alleen had ik niet verwacht dat het een binary zou worden, maarja het werkt :)

Dat het in een latere versie niet werkt is niet zo'n probleem. Het wordt gehost bij een provider en die zal niet zomaar zonder bericht overgaan op een nieuwe versie.

日本!🎌


Verwijderd

Hmmz zit net es wat te spelen er mee, d'r zit iets randoms in pwdencrypt? (vandaar de pwdcompare ook denk ik?)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

als pwdencrypt ongeveer net zo werkt als crypt in unix zit er een random salt bij.
Dat houdt dus in dat je het alleen kan checken als je die salt er weer bij hebt en dus zit er idd iets randoms in :)
Pagina: 1