Minulla olisi tarkoitus tehdä chatti vb .net:illä, mutta onko jotain tiedon siirto muotoa jonka windowsin palomuuri päästää läpi (winsock ei pääse)? Jos on niin miten se toimii?
Muuten miten pystyy cryptaamaan VB:NET:illä?
Ps. En tajunnut koodi vinkkejä.
Käytä CAPICOMia. Ilmainen ja luja(?) MS:n kryptausrajapinta.
RSA salakirjoituksen käyttötapa:
Kumpikin chatti ohjelma laatii julkisen ja salaisen RSA-avaimen. Julkisella avaimella salakirjoitetaan ja salaisella avaimella avataan ko. salakirjoitus. Julkinen avain läheteään kaverille ja kaveri lähettää oman julkisen avaimensa sulle. Kaverille osoitettu viesti salakirjoitetaan kaverin julkisella avaimella. Vastaavasti jos kaveri lähettää sinulle viestin niin hän salakirjoittaa sen sinun julkisella avaimellasi.
Salaisia avaimia, jolla avataan viestejä, ei tarvitse ollenkaan lähettää netin yli. Julkiset avaimet joku voi kaapata, mutta ei sillä voi mitään avata!!!
RSA salakirjoitus löytyy valmiina luokkana vb.net:stä.
Entä millä dll tiedostoa kannataisi käytää tähän tarkoitukseen
minulle ei ole full versiota vaan minulla on standard versio.
Kaikki löytyy valmiina System.Security.Cryptography luokasta. RSA:ta voi käyttää, jos tekstit ovat lyhyitä. Jos on tarkoitus sallia pitkät tarinat niin lähetä RSA:n avulla DES salakirjoitusavain, siirry sen jälkeen DES salakirjoitukseen, pitkätkin tekstit menee hujauksessa.
Imports System.Security.Cryptography Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " '... koodia poistettu #End Region ' ' Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Luodaan instanssi ja avaimet Dim RSA1 As New RSACryptoServiceProvider(128 * 8) 'tehdään vain eka kerran 'luetaan avaimet Dim RSAParams1 As RSAParameters = RSA1.ExportParameters(False) 'lähetä julkiset avaimet(RSAParams1) kaverille tässä välissä 'Kaveri tekee: Dim RSAParams2 As RSAParameters = RSAParams1 ' sai sinulta avaimesi 'tekee instanssi (tehdään vain kerran) Dim RSA2 As New RSACryptoServiceProvider(128 * 8) RSA2.ImportParameters(RSAParams2) Dim tekstiByteinä() As Byte Dim salattavaTeksti As String = "Hello there" Dim salattavaTekstiByteinä(100) As Byte Dim salattuTekstiByteinä(100) As Byte For i As Integer = 0 To salattavateksti.Length - 1 salattavatekstiByteinä(i) = CByte(AscW(salattavateksti.Chars(i))) Next salattuTekstiByteinä = RSA2.Encrypt(salattavaTekstiByteinä, False) 'Kaveri lähettää salatut bytet sinulle tässä välissä 'Sinä teet: ' avataan sanoma Dim avattuTekstiByteinä() As Byte = RSA1.Decrypt(salattuTekstiByteinä, False) Dim avattuTeksti As String For i As Integer = 0 To 100 avattuTeksti = avattuTeksti & Chr(avattuTekstiByteinä(i)) Next End Sub End Class
Ja entä chatti puoli sama juttu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.