Atmozpheric Skrevet 1. oktober 2003 Del Skrevet 1. oktober 2003 Har laga eit simpelt program som krypterer ei fil om til ei linje, slik at eg kan kryptere fleire filer til ei fil. Filene blir 3 ganger større enn vanlig... simpelt og enkelt... men korleis kan eg kryptere tekst uten at det ikkje blir så stort? Lenke til kommentar
GeirGrusom Skrevet 3. oktober 2003 Del Skrevet 3. oktober 2003 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
PlastBox Skrevet 9. oktober 2003 Del Skrevet 9. oktober 2003 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
aadnk Skrevet 13. oktober 2003 Del Skrevet 13. oktober 2003 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
Atmozpheric Skrevet 14. oktober 2003 Forfatter Del Skrevet 14. oktober 2003 Nice... Lenke til kommentar
aadnk Skrevet 14. oktober 2003 Del Skrevet 14. oktober 2003 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå