Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Criptare(scusate per prima)
Forum - Visual Basic 6 - Criptare(scusate per prima)

Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 7:23
Giovedì, 20/12/2007
Vorrei una routine per criptare una stringa in vb6
P.S.Scusate per prima ma nn ho molta esperienza con la criptazione:k::k::k:

PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 20:13
Giovedì, 20/12/2007
nessuno che mi aiuta8-|8-|8-|8-|

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:59
Giovedì, 20/12/2007
Ti avevo gia' risposto con un esempio di codice nel primo thread ... perche' non usi quello?

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 19:30
Venerdì, 21/12/2007
il metodo migliore (a mio parere) di criptazione per frasi brevi o per parole è quello di sostituzione.
prendi i codici ascii dei singoli caratteri (con mid non si può fare una conversione globale) e mischiarli con i codici ascii della passkey.
con mischiarli intendo sommarli, dividerli elevarli insomma trasformarli in qualsiasi maniera che ammetta un'inversa.
e poi riconventirli in char.
questo metodo non può funzionare per testi lunghi o per file. quindi presta attenzione a cosa cripti.

PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 21:54
Venerdì, 21/12/2007
Un esempio;)

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:54
Sabato, 22/12/2007
gius, ti mando un codice che avevo scritto molti anni fa, scopiazzando di qua e di la.
anche sel la criptazione non credo sia molto sicura
Testo quotato


Public ww, wh, n, m, p, t, maxid, h1, h2, finito, limite
Public nomefile As String
Dim k(400)

Private Function decifra(infile As String) As Boolean
Dim numfile1 As Integer
Dim numfile2 As Integer
Dim outfile As String
Dim xpos As Long
Dim x As Byte
Dim t(3) As Byte
MousePointer = 11
xpos = 4
outfile = "c:\temp.jpg"

numfile1 = FreeFile
Open infile For Binary As numfile1
numfile2 = FreeFile
Get #numfile1, 1, t(0)
Get #numfile1, 2, t(1)
Get #numfile1, 3, t(2)
Get #numfile1, 4, t(3)
If (t(0) = 0 And t(1) = 128 And t(2) = 0 And t(3) = 128) Then
Open outfile For Binary As numfile2

Do While Not EOF(numfile1)
xpos = xpos + 1
Get #numfile1, xpos, x
Put #numfile2, xpos - 4, x + 128
Loop
Close numfile2
Close numfile1
Kill infile
FileCopy outfile, infile
Kill outfile
decifra = True
Else
decifra = False
End If
MousePointer = 0

End Function
Function critto(infile As String) As Boolean
Dim numfile1 As Integer
Dim numfile2 As Integer
Dim outfile As String
Dim xpos As Long
Dim x As Byte
Dim t(3) As Byte
MousePointer = 11
xpos = 4
outfile = "c:\temp.enc"
numfile1 = FreeFile
Open infile For Binary As numfile1
numfile2 = FreeFile
Open outfile For Binary As numfile2
Get #numfile1, 1, t(0)
Get #numfile1, 2, t(1)
Get #numfile1, 3, t(2)
Get #numfile1, 4, t(3)
If (t(0) = 0 And t(1) = 128 And t(2) = 0 And t(3) = 128) Then
critto = False
MousePointer = 0
Close numfile2
Close numfile1
Exit Function
Else
Put #numfile2, 1, 0
Put #numfile2, 2, 128
Put #numfile2, 3, 0
Put #numfile2, 4, 128
Do While Not EOF(numfile1)
xpos = xpos + 1
Get #numfile1, xpos - 4, x
Put #numfile2, xpos, x + 128
Loop
Close numfile2
Close numfile1
Kill infile
FileCopy outfile, infile
Kill outfile
critto = True
End If
MousePointer = 0
End Function
Function getfile() As String
cd.CancelError = True
On Error GoTo filerr
cd.FileName = ""
cd.Filter = "Immagini (*.bmp;*.jp*;*.gif)|*.bmp;*.jp*;*.gif"
cd.ShowOpen
getfile = cd.FileName
Exit Function
filerr:
getfile = ""
End Function
Private Sub Command1_Click()
nomefile = getfile()
If nomefile <> "" Then
If critto(nomefile) = False Then
MsgBox "errore - file gia cifrato"
End If
End If
End Sub



Private Sub Command3_Click()
nomefile = getfile()
If nomefile <> "" Then
If decifra(nomefile) = False Then
MsgBox "errore nella decifrazione"
End If
End If
End Sub



PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 21:43
Sabato, 22/12/2007
nn funge

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 21:50
Domenica, 23/12/2007
non è difficile.
ho scritto questo in 5 min.

text1 (testo da crittare)
text2 (chiave per la crittatura)
text3 (dove apparirà il testo crittato)
command1 (pulsante per crittare)

text4 (testo da decrittare)
text5 (chiave per la decrittatura)
text6 (dove apparirà il testo decrittato)
command2 (pulsante per decrittare)

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. Dim x As Integer
  3. Text3.Text = ""
  4. For x = 1 To Len(Text1.Text)
  5. Text3.Text = Text3.Text & Chr((Asc(Mid(Text1.Text, x, 1)) + Asc(Mid(Text2.Text, ((x - 1) Mod (Len(Text2.Text))) + 1, 1))) Mod 256)
  6. Next x
  7. End Sub
  8.  
  9. Private Sub Command2_Click()
  10. Dim x As Integer
  11. Text6.Text = ""
  12. For x = 1 To Len(Text4.Text)
  13. Text6.Text = Text6.Text & Chr((256 + Asc(Mid(Text4.Text, x, 1)) - Asc(Mid(Text5.Text, ((x - 1) Mod (Len(Text5.Text))) + 1, 1))) Mod 256)
  14. Next x
  15. End Sub


PM Quote
Avatar
BytE-FucK (Normal User)
Pro


Messaggi: 171
Iscritto: 09/10/2007

Segnala al moderatore
Postato alle 20:19
Sabato, 05/01/2008
Io uso semplicemente,se la memoria non m'inganna :

Codice sorgente - presumibilmente VB.NET

  1. Dim cont as integer
  2. Dim frase,stringa as string
  3. 'stringa è la frase criptata
  4. frase = "Ciao" ' La frase da criptare
  5. For cont = 1 to Len(frase)
  6. stringa = stringa & Chr(asc(mid(frase,cont,1)) - 20)
  7. next
  8. 'sostituisci il 20 con un un numero,piu è grande maggiore sarà il livello di criptazione.



Mentre per decriptare,devi mettere sempre lo stesso numero,ma con +,ovvero :

Codice sorgente - presumibilmente VB.NET

  1. Dim cont as integer
  2. Dim frase,stringa as string
  3. 'stringa è la frase criptata
  4. frase = "[!{;" ' La frase criptata(ammettiamo sia cosi)
  5. For cont = 1 to Len(frase)
  6. stringa = stringa & Chr(asc(mid(frase,cont,1)) [b]+[/b] 20)
  7. next



Se ci sono errori dimmi,perche l'ho fatto a memoria,e non so se ricordo bene :k:

PM Quote