Thread View: be.comp.programming
5 messages
5 total messages
Started by Mathias Vissers
Mon, 13 Oct 2003 17:12
ASP: Strings vergelijken / Encryptie
Author: Mathias Vissers
Date: Mon, 13 Oct 2003 17:12
Date: Mon, 13 Oct 2003 17:12
123 lines
4551 bytes
4551 bytes
Hallo allemaal,
ik houd in een database een ledenlijst samen met paswoorden, zodat mensen
online kunnen inloggen via een website. Ze kunnen ervoor kiezen dat hun
paswoord bewaard blijft in een cookie, zodat ze automatisch worden ingelogd
in de toekomst. Ik heb nu een functie geschreven die dit paswoord gecodeerd
bewaard. Zie hieronder de functie voor coderen en decoderen:
Private Function EncryptString(strString)
Dim CharHexSet, intStringLen, strTemp, strRAW, i, intKey, intOffSet
Randomize Timer
intKey = Round((RND * 1000000) + 1000000) '##### Key Bitsize
intOffSet = Round((RND * 1000000) + 1000000) '##### KeyOffSet Bitsize
If IsNull(strString) = False Then
strRAW = strString
intStringLen = Len(strRAW)
For i = 0 to intStringLen - 1
strTemp = Left(strRAW, 1)
strRAW = Right(strRAW, Len(strRAW) - 1)
CharHexSet = CharHexSet & Hex(Asc(strTemp) * intKey) & Hex(intKey)
Next
EncryptString = CharHexSet & "|" & Hex(intOffSet + intKey) & "|" &
Hex(intOffSet)
Else
EncryptString = ""
End If
End Function
Private Function DeCryptString(strCryptString)
Dim strRAW, arHexCharSet, i, intKey, intOffSet, strRawKey, strHexCrypData
strRawKey = Right(strCryptString, Len(strCryptString) -
InStr(strCryptString, "|"))
intOffSet = Right(strRawKey, Len(strRawKey) - InStr(strRawKey,"|"))
intKey = HexConv(Left(strRawKey, InStr(strRawKey, "|") - 1)) -
HexConv(intOffSet)
strHexCrypData = Left(strCryptString, Len(strCryptString) - (Len(strRawKey)
+ 1))
arHexCharSet = Split(strHexCrypData, Hex(intKey))
For i=0 to UBound(arHexCharSet)
strRAW = strRAW & Chr(HexConv(arHexCharSet(i))/intKey)
Next
DeCryptString = strRAW
End Function
Private Function HexConv(hexVar)
Dim hxx, hxx_var, multiply
IF hexVar <> "" THEN
hexVar = UCASE(hexVar)
hexVar = StrReverse(hexVar)
DIM hx()
REDIM hx(LEN(hexVar))
hxx = 0
hxx_var = 0
FOR hxx = 1 TO LEN(hexVar)
IF multiply = "" THEN multiply = 1
hx(hxx) = mid(hexVar,hxx,1)
hxx_var = (get_hxno(hx(hxx)) * multiply) + hxx_var
multiply = (multiply * 16)
NEXT
hexVar = hxx_var
HexConv = hexVar
END IF
End Function
Private Function get_hxno(ghx)
If ghx = "A" Then
ghx = 10
ElseIf ghx = "B" Then
ghx = 11
ElseIf ghx = "C" Then
ghx = 12
ElseIf ghx = "D" Then
ghx = 13
ElseIf ghx = "E" Then
ghx = 14
ElseIf ghx = "F" Then
ghx = 15
End If
get_hxno = ghx
End Function
%>
Dit werkt allemaal perfect. In de procedure voor auto-login, wordt er
nagekeken of het paswoord in de database gelijk is aan het paswoord van de
cookie. Hier zit het probleem nu net. Om ��n of andere reden wilt ASP niet
aannemen dat de twee strings gelijk zijn aan elkaar. Ik heb al geprobeerd
met een gewone = alsook met de functie StrComp(). Telkens blijkt dat de twee
strings verschillend zijn. Echter wanneer ik ga testen met een
response.write, en ik laat de twee strings op scherm verschijnen, zijn deze
identiek dezelfde! Ik kan er alleszinds niet meer aan uit... Iemand een
voorstel?
dim pasw
pasw = DeCryptString(request.cookies("login")("paswoord"))
if pasw = lgs("paswoord") then
session("log") = lgs("userid")
query = "INSERT INTO online2 (userid, SID, login) VALUES (" &
Session("log") & "," & Session.SessionID & ",#" & now() & "#)"
conn.Execute (query)
end if
Re: Strings vergelijken / Encryptie
Author: KLinZ
Date: Mon, 13 Oct 2003 17:25
Date: Mon, 13 Oct 2003 17:25
23 lines
2199 bytes
2199 bytes
In news:G1Bib.75590$jy.3786780@phobos.telenet-ops.be, Mathias Vissers typed: <snip> > Dit werkt allemaal perfect. In de procedure voor auto-login, wordt er > nagekeken of het paswoord in de database gelijk is aan het paswoord > van de cookie. Hier zit het probleem nu net. Om ��n of andere reden > wilt ASP niet aannemen dat de twee strings gelijk zijn aan elkaar. Ik > heb al geprobeerd met een gewone = alsook met de functie StrComp(). > Telkens blijkt dat de twee strings verschillend zijn. Echter wanneer > ik ga testen met een response.write, en ik laat de twee strings op > scherm verschijnen, zijn deze identiek dezelfde! Ik kan er alleszinds > niet meer aan uit... Iemand een voorstel? Staan er spaties voor of achter? Kijk ook eens naar MD5, dat is iets veiliger dan de manier die jij gebruikt. Met MD5 worden de wachtwoorden gehasht opgeslagen en zijn deze dus nooit meer terug te halen. De manier die jij gebruikt mag je eigenlijk geen encryptie noemen. -- www.zenobits.com
Re: Strings vergelijken / Encryptie
Author: Mathias Vissers
Date: Mon, 13 Oct 2003 17:42
Date: Mon, 13 Oct 2003 17:42
51 lines
3162 bytes
3162 bytes
"KLinZ" <klinz@NOSPAMzenobitsSPAMNO.com.invalid> schreef in bericht
news:tfBib.10811$P51.313590@amstwist00...
> In news:G1Bib.75590$jy.3786780@phobos.telenet-ops.be, Mathias Vissers
typed:
>
> <snip>
>
> > Dit werkt allemaal perfect. In de procedure voor auto-login, wordt er
> > nagekeken of het paswoord in de database gelijk is aan het paswoord
> > van de cookie. Hier zit het probleem nu net. Om ��n of andere reden
> > wilt ASP niet aannemen dat de twee strings gelijk zijn aan elkaar. Ik
> > heb al geprobeerd met een gewone = alsook met de functie StrComp().
> > Telkens blijkt dat de twee strings verschillend zijn. Echter wanneer
> > ik ga testen met een response.write, en ik laat de twee strings op
> > scherm verschijnen, zijn deze identiek dezelfde! Ik kan er alleszinds
> > niet meer aan uit... Iemand een voorstel?
>
> Staan er spaties voor of achter?
>
> Kijk ook eens naar MD5, dat is iets veiliger dan de manier die jij
gebruikt.
> Met MD5 worden de wachtwoorden gehasht opgeslagen en zijn deze dus nooit
> meer terug te halen. De manier die jij gebruikt mag je eigenlijk geen
> encryptie noemen.
>
> --
> www.zenobits.com
>
Mja, het hoeft niet superveilig voor mij te zijn, het is maar gewoon dat ze
het niet kunnen lezen rechtstreeks uit de cookie.
Ik heb nog meer rare dingen ontdekt nu.
Als ik het volgende doe:
pas = request.cookies("login")("paswoord")
pasw = DecryptString(pas)
response.write "'" & pasw & "'"
response.end
geeft hij enkel ' en mijn paswoord weer, maar de laatste quote geeft hij
niet weer. Je mag wat je wil achter die lijn nog typen, hij laat dat niet
zien. Hij stopt gewoon met uitvoeren na de variabele pasw. Ik kan er totaal
niet aan uit!
Heb ook al response.write ("'" & pasw & "'") e.d. geprobeerd, maar ook dat
helpt niet. Ik heb pasw al omgezet met een CStr naar string, helpt ook
niets.
Rare microsoft of ligt het gewoon aan mij? :-)
Mathias.
Re: ASP: Strings vergelijken / Encryptie
Author: Marcus
Date: Tue, 14 Oct 2003 13:28
Date: Tue, 14 Oct 2003 13:28
19 lines
1688 bytes
1688 bytes
Mathias Vissers wrote: > Hallo allemaal, > > ik houd in een database een ledenlijst samen met paswoorden, zodat mensen > online kunnen inloggen via een website. Ze kunnen ervoor kiezen dat hun > paswoord bewaard blijft in een cookie, zodat ze automatisch worden ingelogd > in de toekomst. Ik heb nu een functie geschreven die dit paswoord gecodeerd > bewaard. Zie hieronder de functie voor coderen en decoderen: Knipperdeknip, je bent nogal onveilig bezig, want: a) je houdt t wachtwoord in de database b) iedereen die dat cookie krijgt kan inloggen, oftewel, dat encoden heeft helemaal geen zin. Probeer eens iets met mensen sessies te geven die eenmalig geldig zijn, waarna ze een nieuwe krijgen, oid, want dit is niet erg verstandig :( Mark
Re: Strings vergelijken / Encryptie
Author: Marcus
Date: Tue, 14 Oct 2003 13:32
Date: Tue, 14 Oct 2003 13:32
55 lines
3280 bytes
3280 bytes
Mathias Vissers wrote:
> "KLinZ" <klinz@NOSPAMzenobitsSPAMNO.com.invalid> schreef in bericht
> news:tfBib.10811$P51.313590@amstwist00...
>> In news:G1Bib.75590$jy.3786780@phobos.telenet-ops.be, Mathias Vissers
> typed:
>>
>> <snip>
>>
>> > Dit werkt allemaal perfect. In de procedure voor auto-login, wordt er
>> > nagekeken of het paswoord in de database gelijk is aan het paswoord
>> > van de cookie. Hier zit het probleem nu net. Om ��n of andere reden
>> > wilt ASP niet aannemen dat de twee strings gelijk zijn aan elkaar. Ik
>> > heb al geprobeerd met een gewone = alsook met de functie StrComp().
>> > Telkens blijkt dat de twee strings verschillend zijn. Echter wanneer
>> > ik ga testen met een response.write, en ik laat de twee strings op
>> > scherm verschijnen, zijn deze identiek dezelfde! Ik kan er alleszinds
>> > niet meer aan uit... Iemand een voorstel?
>>
>> Staan er spaties voor of achter?
>>
>> Kijk ook eens naar MD5, dat is iets veiliger dan de manier die jij
> gebruikt.
>> Met MD5 worden de wachtwoorden gehasht opgeslagen en zijn deze dus nooit
>> meer terug te halen. De manier die jij gebruikt mag je eigenlijk geen
>> encryptie noemen.
>>
>> --
>> www.zenobits.com
>>
>
> Mja, het hoeft niet superveilig voor mij te zijn, het is maar gewoon dat ze
> het niet kunnen lezen rechtstreeks uit de cookie.
> Ik heb nog meer rare dingen ontdekt nu.
>
> Als ik het volgende doe:
>
> pas = request.cookies("login")("paswoord")
> pasw = DecryptString(pas)
> response.write "'" & pasw & "'"
> response.end
>
> geeft hij enkel ' en mijn paswoord weer, maar de laatste quote geeft hij
> niet weer. Je mag wat je wil achter die lijn nog typen, hij laat dat niet
> zien. Hij stopt gewoon met uitvoeren na de variabele pasw. Ik kan er totaal
> niet aan uit!
> Heb ook al response.write ("'" & pasw & "'") e.d. geprobeerd, maar ook dat
> helpt niet. Ik heb pasw al omgezet met een CStr naar string, helpt ook
> niets.
>
> Rare microsoft of ligt het gewoon aan mij? :-)
Misschien zitte er controlcharacters in pasw? kijk eens of ie voldoet
aan de Regex /^[a-zA-Z0-9]$/ oid.
Mark
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads