🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
5 messages
5 total messages Started by Mathias Vissers Mon, 13 Oct 2003 17:12
ASP: Strings vergelijken / Encryptie
#3829
Author: Mathias Vissers
Date: Mon, 13 Oct 2003 17:12
123 lines
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
#3830
Author: KLinZ
Date: Mon, 13 Oct 2003 17:25
23 lines
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
#3831
Author: Mathias Vissers
Date: Mon, 13 Oct 2003 17:42
51 lines
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
#3835
Author: Marcus
Date: Tue, 14 Oct 2003 13:28
19 lines
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
#3836
Author: Marcus
Date: Tue, 14 Oct 2003 13:32
55 lines
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