Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Jeg pleier å bruke XOR til kryptering, siden filen da ikke øker i størrelse, og bare folk som virkelig setter seg inn for det klarer å finne ut av det (en må faktisk gjette hvis du ikke vet hva nøkkelen er(eller du kan ta deg tid og se gjennom byte for byte);

Hvilken algoritme har du brukt?

 

strAns = strKey ^ strLine

strLine = strAns ^ strKey

 

Exlusive Or, enkelt og greit. Teksten vil da se ut som en binær fil, så det egner seg ikke til tekst kryptering... tekstkrypterings algoritmer kan jeg desverre ikke noe om.

Lenke til kommentar

Dette er sikkert ikke hva du er ute etter men om du bare skal ha flere filer i en fil kan du bare bytte ut chr(10) chr(13) (altså linjebrudd) med noe annet, f.eks. "hererdetlinjebrudd". Så, når du "pakker" det opp igjen reverserer du det, så "hererdetlinjebrudd" blir chr(10) chr(13) igjen.

 

Dette er ikke mye til kryptering, men om du har en fungerende algorythme kan du jo bare gjøre dette først for å bli kvitt linjebruddene og så kryptere fila.

Lenke til kommentar

En enkel kryptering (faktisk en forbedret versjon av det Julius Cæsar brukte) er å ganske enkelt bruke en bokstavnøkkel der hver bokstav i nøkkelen adderes med hver bokstav i teksten som skal krypteres.

 

Tenkt deg at du har nøkkelen "KATT". Med denne skal du kryptere teksten

"DETTE". Hva du gjør er å ta:

 

K + D = 11 + 4 = 15 = O

A + E = 1 + 5 = 6 = F

T + T = 19 + 19 = 38 (over 29. 38 - 29 = 9) = I

T + T = 19 + 19 = 38 (samme) = I

K + E = 11 + 5 = 16 = P

 

Det krypterte ordet blir altså: "OFIIP"

Dekryptering blir:

 

O - K = 15 - 11 = 4 = D

F - A = 6 - 1 = 5 = E

I - T = 9 - 19 = -10 (under 1, -10 + 29 = 19) = T

I - T = 9 - 19 = -10 (samme) = T

P - K = 16 - 11 = 5 = E

 

Etter dekryptering får vi "DETTE" som var det ordet vi startet med.

Enkel kryptering, går vel, men den kan forhåndsvis lett dekrypteres.

Uansett, for å oversette denne metoden til VB koding må vi bruke prosedyrene ASC og CHR (Vi glemmer unicode siden dette er for kinesere og arabere (med tanke på skriftspråk)).

 

Kryptering blir da:

 


Public Sub Code(Password As String, Text As String)



Dim X&, A&, B&



For A = 1 To Len(Text)

X = X + 1

If X > Len(Password) Then X = 1

B = Asc(Mid(Text, A, 1)) + Asc(Mid(Password, X, 1))

If B > 255 Then

Mid(Text, A, 1) = Chr(B - Asc(Mid(Password, X, 1)))

Else

   Mid(Text, A, 1) = Chr(B)

   End If

Next



End Sub



 

Dekryptering blir:

 


Public Sub DeCode(Password As String, Text As String)



Dim X&, A&, B&



For A = 1 To Len(Text)

X = X + 1

If X > Len(Password) Then X = 1

B = Asc(Mid(Text, A, 1)) - Asc(Mid(Password, X, 1))

If B < 0 Then

Mid(Text, A, 1) = Chr(B + Asc(Mid(Password, X, 1)))

Else

   Mid(Text, A, 1) = Chr(B)

   End If

Next



End Sub



Lenke til kommentar

Det er dessverre en bug i koden, eller ikke akkuratt bug da. Koden som jeg postet hadde jeg brukt i et program som krypterte filer. Hva som skjedde var at jeg lagret all teksten i en variabel. Men, hvis dere skal bruke en textbox direkte, oppstår det et problem. Det har noe med hvordan Propeties fungerer. Når du får noen som helst data fra disse er det egentlig som å bruke en funskjon. Hvordan propetien blir kalt (call) avhengig av hvordan koden blir skrevet.

 

F.eks:

 

txtName.Text = "Hello"

 

Compileren oppfatter at det er noe som skal skrives til propetien. I classen TextBox blir da Propetien Property Let Text() kalt.

 

Står det

 

Buffer = txtName.Text

 

vil compileren oppfatte at noe skal ha data fra propetien Text. Propertien

Property Get Text() blir kalt isteden for.

 

 

Derfor fungerer ikke textbox.text som en vanlig variabel og vi må "jukse" litt for å få koden til å fungere.

 

 


Dim Buff$



Buff = txtText.Text

Code txtPassword.Text, Buff

txtText.Text = Buff



 

Bruker du den metoden for textbokser skulle alt være i orden.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...