Shmotes Skrevet 25. september 2008 Del Skrevet 25. september 2008 Hei! Jeg skal lage et program (VB 2008) som skal kode meldinger. Og jeg vil at fks at alle r'er blir til k'er, og at alle T'er blir til S'er. Forstår? Finns det en type komando for dette? Takk! Lenke til kommentar
Manfred Skrevet 25. september 2008 Del Skrevet 25. september 2008 Hva med å se hva "erstatt" er på engelsk og se om du finner noe smart? Lenke til kommentar
duckers Skrevet 26. september 2008 Del Skrevet 26. september 2008 Du kan lage en matrise der alle bokstavene har et motstykke, a = x, b = k osv osv, så kan du søke gjennom den strengen du vil "kryptere" bokstav for bokstav og bytte ut hver bokstav etterhvert som du kommer til de. Problemet med dette er at du må legge inn kryptonøkkelen din i koden, du vil også oppdage ganske raskt at du ønsker å kunne benytte både store og små bokstaver, tall og andre tegn som komma, kolon osv. Matrisen har defor en lei tendens til å bli relativt stor. For å dekryptere er det bare å søke gjennom matrisen motsatt vei.. Lenke til kommentar
aadnk Skrevet 26. september 2008 Del Skrevet 26. september 2008 (endret) Man kan, om man kun ønsker en måte å skjule informasjonen og ikke har noe særlig behov for kryptografisk beskyttelse, benytte en simpel Xor-kryptering. Det, i likhet med rot13, er svært enkelt å forstå og lar seg dekrypteres ved å kjøre algoritmen to ganger (rot13(rot13("hallo")) er derfor "hallo"): Public Function EncryptXor(ByVal Text As String, ByVal Key As String) As String With System.Text.Encoding.Unicode ' Konverterer strenger til byte-arrays Dim aData() As Byte = .GetBytes(Text) Dim aKey() As Byte = .GetBytes(Key) ' Utfører selve krypteringen EncryptXor(aData, aKey) Return .GetString(aData) End With End Function Public Sub EncryptXor(ByVal inputBuffer() As Byte, ByVal Key() As Byte) ' Xor virker på to binærstrenger (a og b) av samme lengde og returnerer en streng ' der en bit er èn dersom de to tilsvarende bittene i a og b er ulike (om ikke, 0). ' Eksempel: ' 65 ("a" eller 0100.0001) Xor 109 ("d" eller 0110.1101) = 44 ("," eller 0010.1100) ' 44 (",") Xor 109 ("d") = 65 ("a") For i = 0 To inputBuffer.Length - 1 inputBuffer(i) = inputBuffer(i) Xor Key(i Mod Key.Length) ' Mod = rest etter divisjon t/n Next End Sub Ønsker du en smule mer sikrer/praktisk løsning, bør du ta en titt på System.Security.Cryptography-navneområdet. Endret 27. september 2008 av aadnk 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å