Avatar billede Slettet bruger
31. januar 2004 - 13:54 Der er 20 kommentarer og
1 løsning

Problemer med kryptering og cookie

Hej, prøv at se nedenstående script - det virker som en drøm - bare ikke når jeg bruger en cookie som mellemled, hvilket er lidt surt, for det er i den forbindelse jeg skal bruge det :(
<%
krypt = "dæalskjdslak2987as9806312bd"
Function Krypter(Streng)
    for tal1 = 0 to len(Streng)
        for tal2 = 1 to len(krypt)
            kontrol = tal1*len(krypt) + tal2
            if kontrol <= len(Streng) then
                original = asc(mid(Streng,kontrol,1))
                ny = asc(mid(krypt,tal2,1))
                nytekst = nytekst + chrw(original + ny)
            end if
        next
    next
    Krypter = nytekst
End Function

'// Dekrypterer en streng
Function Dekrypter(Streng)
    for tal1 = 0 to len(Streng)
        for tal2 = 1 to len(krypt)
            kontrol = tal1*len(krypt) + tal2
            if kontrol <= len(Streng) then
                original = ascw(mid(Streng,kontrol,1))
                ny = asc(mid(krypt,tal2,1))
                nytekst = nytekst + chrw(original - ny)
            end if
        next
    next
    Dekrypter = nytekst
End Function


strPsw = Krypter(request.form("kode"))
response.cookies("psw") = strPsw
response.cookies("psw").Expires = date() + 365
'response.write strPsw
'strPsw = Dekrypter(strPsw)
'response.write "<br>" & strPsw

%>
<form action="test.asp" method="post">
<input type="text" name="kode" value="<%=request.form("kode")%>">
<input type="submit">
</form>
krypteret indhold af cookie <b><%=request.cookies("psw")%></b><br>
de-krypteret indhold af cookie <b><%=Dekrypter(request.cookies("psw"))%></b><br><br>

krypteret indhold fra form <b><%=strPsw%></b><br>
de-krypteret indhold fra form <b><%=Dekrypter(strPsw)%></b><br>
Avatar billede erikjacobsen Ekspert
31. januar 2004 - 15:45 #1
Jeg vil tro du har mere held med denneher:

krypt = "dæalskjdslak2987as9806312bd"
Function Krypter(Streng)
    for tal1 = 0 to len(Streng)
        for tal2 = 1 to len(krypt)
            kontrol = tal1*len(krypt) + tal2
            if kontrol <= len(Streng) then
                original = asc(mid(Streng,kontrol,1))
                ny = asc(mid(krypt,tal2,1))
                nytekst = nytekst + chr((original + ny) mod 256)
            end if
        next
    next
    Krypter = nytekst
End Function

'// Dekrypterer en streng
Function Dekrypter(Streng)
dim nytekst
    for tal1 = 0 to len(Streng)
        for tal2 = 1 to len(krypt)
            kontrol = tal1*len(krypt) + tal2
            if kontrol <= len(Streng) then
                original = asc(mid(Streng,kontrol,1))
                ny = asc(mid(krypt,tal2,1))
                nytekst = nytekst + chr((original - ny+256)mod 256)
            end if
        next
    next
    Dekrypter = nytekst
End Function
Avatar billede Slettet bruger
31. januar 2004 - 15:52 #2
erik > vil du forklare hvad du har ændret? Du bruger modulus 256 på chr værdien af den krypterede streng?
Avatar billede Slettet bruger
31. januar 2004 - 15:53 #3
(og det virker perfekt) - tak for hjælpen :)
Avatar billede erikjacobsen Ekspert
31. januar 2004 - 15:54 #4
dine funktioner der ender på ...w er til unicode tegn ppå 16 bit, der ikke overlever
en tur i cookie - tilsyneladende ;)  Så i stedet for et tegn med ordinalværdi 350,
har jeg fået dem mellem 0 og 255. Test endeligt grundigt om der er mere der går galt.

Og så er din kryptering umådeligt primitiv!! Der er standarder der er langt
stærkere. Hvorfor ikke benytte en af dem?
Avatar billede Slettet bruger
31. januar 2004 - 16:15 #5
>Og så er din kryptering umådeligt primitiv!! Der er standarder der er langt
>stærkere. Hvorfor ikke benytte en af dem?

Hvis du kan finde en der virker i asp skal du være MEGET velkommen - jeg har ikke været i stand til det :)
Avatar billede erikjacobsen Ekspert
31. januar 2004 - 16:17 #6
Der er ikke noget indbygget i ASP, selvfølgelig, så du skal ud og lede.
Jeg har ikke selv noget liggende, men jeg mener at have set nogen omtalt på
eksperten.dk.
Avatar billede Slettet bruger
31. januar 2004 - 16:21 #7
jeg har ledt ret grundigt efter noget der virkede - fandt en rc4 på 4guysfromrolla.com men der var fejl i.
Avatar billede Slettet bruger
31. januar 2004 - 16:26 #8
og jeg har søgt på eksperten gentagne gange.

Har du nogen særlig algoritme du vil anbefale?
Avatar billede erikjacobsen Ekspert
31. januar 2004 - 16:34 #9
Og rc4 er ikke en kryptering, men en hash. Er en hash nok for dig har jeg måske een liggende.
Avatar billede Slettet bruger
31. januar 2004 - 16:35 #10
hash er ikke godt, for jeg har brug for at kunne gå tilbage igen.
Avatar billede Slettet bruger
31. januar 2004 - 16:50 #11
men hvorfor er den i grunden så primitiv? Fordi den er symmetrisk?
Avatar billede erikjacobsen Ekspert
31. januar 2004 - 16:57 #12
Den kan brydes hvis man vil. Ikke fordi den symmetrisk, bare fordi den er for
primitiv. For 100 år siden var den god nok.
Avatar billede Slettet bruger
31. januar 2004 - 16:59 #13
heh - det meste kryptering kan vel brydes hvis man vil det i tilstrækkelig grad?! Men har du et bedre forslag?
Avatar billede erikjacobsen Ekspert
31. januar 2004 - 17:06 #14
Ikke til ASP.
Avatar billede Slettet bruger
31. januar 2004 - 17:42 #15
utroligt hvad man skal finde sig i med asp :(
Avatar billede erikjacobsen Ekspert
31. januar 2004 - 18:26 #16
Det skal såmænd nok findes - gratis/købe scripts/dll-er, men jeg ved det ikke.
Man kan sige meget om ASP, men vi behøver ikke skælde det ud for mere end højst nødvendigt.
Avatar billede Slettet bruger
02. februar 2004 - 12:40 #17
Vil du ha' point?
Avatar billede erikjacobsen Ekspert
02. februar 2004 - 13:08 #18
Nej tak.
Avatar billede Slettet bruger
02. februar 2004 - 13:09 #19
Hermed lukket
Avatar billede Slettet bruger
02. februar 2004 - 13:09 #20
Tak for hjælpen :)
Avatar billede mussle Nybegynder
17. marts 2005 - 13:24 #21
Når du henter og gemmer cookie, kan du lige URL encode/decode den. Det løser problemer med Unicode problemet...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester