Avatar billede para7 Nybegynder
11. september 2009 - 18:40 Der er 12 kommentarer og
1 løsning

Dekryptering fra databasefelt

Jeg har et web med brugerlogin og der gemmes kodeord krypteret med denne funktion:

Function Kryptering(ko)
        Kryptkode=""
        for i=1 to len(ko)
            kryptkode = kryptkode & hex(asc(mid(ko,i,1)))
        next
        Kryptering = Kryptkode
end function


Hvordan udskriver jeg det gemte dodeord igen dekrypteret?
Avatar billede tjacob Juniormester
11. september 2009 - 18:54 #1
Det er en meget simpel kryptering der laver bogstav om til tal (med asc) og dette tal om til hex.

Dekrypteres således:

Function DeKryptering(ByVal pStr As String) As String

    Dim i As Long, sOutStr As String
    For i = 1 To Len(pStr) Step 2
        sOutStr = sOutStr & Chr(Val("&H" & Mid(pStr, i, 2)))
    Next i
    DeKryptering = sOutStr

End Function
Avatar billede para7 Nybegynder
12. september 2009 - 09:44 #2
Hej tjacob
Tak, men jeg kan ikke få funktionen til at virke, den giver fejl, har prøvet at omskrive uden held. Googlede mig til følgende:
"Val() is not suported in VBScript"
Avatar billede para7 Nybegynder
12. september 2009 - 09:50 #3
Jeg har lavet en side der udskriver den krypterede adgangskode, og det ser sådan ud:
Kodeordet er: 436F736D6963687xxxx
Jeg har x'et de sidste 4 tegn for ikke at afsløre adgangskoden, hvis det skulle være muligt.

Men jeg gætter indtil videre på at hex koden er som et tal, og ikke kan de-krypteres.
Avatar billede tjacob Juniormester
12. september 2009 - 10:24 #4
Jo det kan det sagtens. Det er blot et spørgsmål om at konvertere hex til decimal. Koden i mit indlæg er almindelig VB, så det er sikkert derfor den fejler. Prøv med:

CLng i stedet for Val.

Jeg HAR dekodet den streng du har som eksempel.
Avatar billede tjacob Juniormester
12. september 2009 - 10:28 #5
Det er i realiteten slet ikke en kryptering i ordets egentlige forstand, forstået på den made at der IKKE er byttet rundt på bogstaver eller noget lignende. Hvert enkelt bogstav er lavet om til et tal, og derefter er dette tal konverteret til hex. Thats it!
Avatar billede para7 Nybegynder
12. september 2009 - 10:34 #6
Det giver håb. Men jeg får stadig fejl. Har nu:

Function DeKryptering(ByVal pStr As String) As String
    Dim i As Long, sOutStr As String
    For i = 1 To Len(pStr) Step 2
        sOutStr = sOutStr & Chr(CLng("&H" & Mid(pStr, i, 2)))
    Next i
    DeKryptering = sOutStr
End Function

Følgende fejl opstår:
Function DeKryptering(pStr) As String
----------------------------^
Avatar billede para7 Nybegynder
12. september 2009 - 10:36 #7
Jeg kalder funktionen sådan:

response.Write "Kodeordet er: " & DeKryptering(rs("kodeord")) & "<br>"
Avatar billede tjacob Juniormester
12. september 2009 - 10:45 #8
Prøv at lave 'formattering' som i din egen funktion:

Function DeKryptering(pStr)

    For i = 1 To Len(pStr) Step 2
        sOutStr = sOutStr & Chr(Val("&H" & Mid(pStr, i, 2)))
    Next i
    DeKryptering = sOutStr

End Function

-Altså slette erklæringer og typer
Avatar billede tjacob Juniormester
12. september 2009 - 10:46 #9
jeg glemte lige:

sOutStr = sOutStr & Chr(Val("&H" & Mid(pStr, i, 2)))
skal være:
sOutStr = sOutStr & Chr(Clng("&H" & Mid(pStr, i, 2)))
Avatar billede para7 Nybegynder
12. september 2009 - 12:34 #10
der var lige et i der skulle væk, men ellers fungerer det bare !!!
Takker :)
Avatar billede tjacob Juniormester
12. september 2009 - 14:45 #11
Selv tak -også for point.

Jeg vil lige slutte af med at pointere, at som kryptering er denne funktion fuldstændig værdiløs.

Med bare en lille smule erfaring, kan man med det samme se at der er tale om hextal. Det er ligeledes oplagt at prøve de tocifrede (0-255 i decimal) der jo netop svarer til ANSI-karakter tabellen. Så jeg vil påstå at denne kryptering kan knækkes på 5 minutter.

Nu kommer det selvfølgelig an på hvad oplysningerne skal bruges til, men du skulle måske overveje en stærkere kryptering.
Avatar billede para7 Nybegynder
12. september 2009 - 16:59 #12
Det er såmænd til login for et kor, ikke særlig top secret. Siderne blev lavet i 2002 og det er nok bedst at fortsætte med de mange hex password i access databasen. Loginsiderne fungerer som de skal, og tjener deres formål OK.
Avatar billede para7 Nybegynder
12. september 2009 - 17:08 #13
Og tak igen, det har været en stor hjælp :)
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