Kan någon koden för dekryptera denna typ av kryptering? Om jag inte tänker helt fel så kan du inte få tillbaka all information med 100% säkerhet med denna kryptering, vilket inte gör den speciellt bra. Problemet är att Mod inte har en "inverterad"(?) funktion, du förlorar information när du utför den operationen. Möjligen är den här algoritmen endast gjord för ett begränsat intervall av ASCII-tabellen t ex stora bokstäver (A-Z). Glömde nämna att om du vill göra XOR-krypteringen betydligt säkrare (men ändå inte säker mot skickliga kodknäckare) så kan du använda en hemlig sträng som nyckel. Du krypterar sedan 1:a tecknet i ursprungstexten med 1:a tecknet i den hemliga nyckeln, sedan 2:a tecknet mot 2:a tecknet i nyckeln o s v, tills du nått nyckelns längd. Därefter börjar du om igen från första tecknet i nyckeln...här är en länk som beksriver metoden lite noggrannare.... Ett bra sätt när man tex ska skicka information krypterat till en annan dator. Dvs när man vill att den som lyssnar av inte ska höra är följande: Om du skall kryptera. Är det bra att använda bytarrayer. I vb. KAn du konvertera en sträng till en Byte array bara genom att tilldela den.<br> Nice!Kryptering!
<code>
Private Sub Text1_Change(Index As Integer)
Dim i As Integer
Dim a As Integer '// Ascii-värdet på tecknet
If Index = 0 Then
If Index = 0 Then '// Klartextrutan
Text1(1).Text = ""
For i = 1 To Len(Text1(0).Text)
a = Asc(Mid(Text1(0).Text, i, 1))
a = (a + 33) Mod 28 + 32
Text1(1).Text = Text1(1).Text & Chr(a)
Next i
End If
Else 'De Code'
End If
End Sub
</code>
Tacksam för hjälp!Sv: Kryptering!
Hur som helst, det finns andra algoritmer om du bara vill ha en enkel (men lättforcerad!) metod, t ex XOR-kryptering. Skickar med lite kod som visar hur man gör (du behöver i princip bara ändra en rad i din kod). Siffran 11 är godtyckligt vald av mig, jag tror att det fungerar med vilket värde som helst mellan 0 och 255. Detta värde kan användas som en enkel nyckel. Möjligen ger 0 och 255 tillbaka samma värde, dvs okrypterat (hinner inte testa det).
Observera än en gång att denna kryptering inte stoppar en någorlunda kompetent och kunnig människa att knäcka det på nolltid. Det finns bättre krypteringsmetoder att tillgå på nätet om du behöver det...
/Per
<code>
Private Sub Encrypt
Dim i As Integer
Dim a As Byte '// Ascii-värdet på tecknet
TextBox2.Text = ""
For i = 1 To Len(TextBox1.Text)
a = Asc(Mid(TextBox1.Text, i, 1))
a = (a Xor 11)
TextBox2.Text = TextBox2.Text & Chr(a)
Next i
End Sub
Private Sub Decrypt
Dim i As Integer
Dim a As Byte '// Ascii-värdet på tecknet
TextBox1.Text = ""
For i = 1 To Len(TextBox2.Text)
a = Asc(Mid(TextBox2.Text, i, 1))
a = (a Xor 11)
TextBox1.Text = TextBox1.Text & Chr(a)
Next i
End Sub
</code>Sv: Kryptering!
http://www.yoe.org/developer/xor.html
/PerSv: Kryptering!
Du som skickar använder XOR-kryptering. Den som tar emot kryperar den krypterade text han får (men med en annan "hemlig" sträng) och skickar sedan tillbaka denna. När den första användaren får tillbaka filen dekrypterar han den. Därefter skickar han tillbaka den "dekrypterade, krypterade, texten", slutligen dekrypterar mottagaren texten och kan då läsa den.
Exempel:
Användare 1 (A1) vill skicka "hej" till Användare 2 (A2). A1 har "aaa" som hemlig sträng (rätt dålig sträng iof). Han krypterar "hej" till "h+a" + "e+a" + "j+a". A2 får denna stäng (men kan inte tyda den då han inte vet A1:s hemliga stäng. A2:s hemliga sträng är "bbb". A2 krypterar då detta till "h+a+b" + "e+a+b" + "j+a+b" och skickar detta till A1. A1 dekrypterar till "h+b" + "e+b" + "e+j" och skickar ännu en gång. A2 kan nu enkelt tyda texten, efter sin egna dekryptering, till "hej".
Detta är bra då man kan slumpa fram en hemlig sträng varje gång utan att mottagaren behöver få den.Sv: Kryptering!
<br>
Här är ett exempel som använder XOR kryptering med bytearrayer:
<code>
Public Function Encrypt(Text As String, Key As String) As String
Dim Result() As Byte
Dim KeyData() As Byte
Dim KeyIndex As Long
Dim KeyLength As Long
Dim TextData() As Byte
Dim TextIndex As Long
Dim TextLength As Long
KeyLength = Len(Key)
If KeyLength Then
KeyData = StrConv(Key, vbFromUnicode)
TextLength = Len(Text)
If TextLength Then
TextData = StrConv(Text, vbFromUnicode)
ReDim Result(0 To TextLength - 1)
For TextIndex = 0 To UBound(TextData)
Result(TextIndex) = TextData(TextIndex) Xor KeyData(KeyIndex)
KeyIndex = (KeyIndex + 1) Mod KeyLength
Next
Encrypt = StrConv(Result, vbUnicode)
End If
Else
Encrypt = Text
End If
End Function
</code>Sv: Kryptering!
Den värkar lite bättre, det blir ju inte samma tecken om man skriver AA.
Hur Decrypterar jag den?
Tusen tack alla för hjälpen!