kodowanie hasła

0

Hej działam na bazie danych MSSQL Server 2000 i musze zakodowac haslo jak to zrobic z poziomu SQL'a ?

0

Użyj wbudowanej funkcji pwdencrypt
SELECT pwdencrypt('ala ma kota')
Nie ma funkcji deszyfrującej - jest tylko porównująca (pwdcompare) do zaszyfrowanego hasła. Zwraca 0 jeśli jest nieprawidłwoe i 1 jeśli prawidłowe.
SELECT pwdcompare('ala ma kota', haslo) FROM hasla
Od SQL 2000 ma jeszcze 3 parametr, który moze przyjmować wartość 0 lub 1 i jest odpowiedzialny za CASE-SENSITIVE danego hasła.

pozdrawiaMM

0

Nie no jasne, szyfrowanie ma dzialac w jednym kierunku, dla porównania tak jak md5() w PHP

0

Hmm funkcja porownania cos nie dziala, zawsze zwraca 0 :

SELECT     Login, Haslo, pwdcompare('aaaa', Haslo, 1) AS test
FROM         MK_LoginUsers
WHERE     (IDuser = 4)

---- wczytanie danych

INSERT INTO MK_LoginUsers (Login, Haslo)
VALUES     ('kamil', pwdencrypt('aaaa'))
0

Zmien typ pola 'Haslo'na varbinary(128).

pozdrawiaMM

0

OK juz lepiej, ale jeszcze jedno male pytanko zapisalem haslo tak :

  1. aaaa
  2. aaaA

SELECT Login, Haslo, pwdcompare('aaaa', Haslo,1) AS test
FROM MK_LoginUsers

dla niego jest to 0 ? hmmm bo 1 to rozróżnienie na duze i male litery, co jeszcze jest zle ?

0

Moze pole varbinary w bazie powinienem zmienic na inna dlugosc niz 50- bo taka mam ?

0

zmienilem dlugosc na 128, tak jak napisales, ale nie rozroznia duzych i malych liter, jesli ostatni parametr podam 0 to nie wazne czy duze czy male zawsze zwroci prawde, a jesli podam 1 to zawsze zwraca 0.

O co chodzi ?

0

Sorry, pomyliło mi się. 3 parametr jest odpowiedzialny za coś innego. Gdzieś znalazłem opis do czego jest 3 parametr:
The third parameter of pwdCompare is provided for backward compatibility (with earlier versions of SQL Server). While comparing passwords encrypted in SQL Server 6.5, we need to pass 1 for this value.

Sorry za zamieszanie.

pozdrawiaMM

1 użytkowników online, w tym zalogowanych: 0, gości: 1