Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Visual Basic 6, ho criptato file txt, ed ora come decripto?

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Visual Basic 6, ho criptato file txt, ed ora come decripto?

Postdi Markew » 08/11/07 13:09

Ciao ragazzi.
Sto provando a fare un progettino in visual basic 6, e all'inizio il mio progetto lo faccio avviare con una form che chiede la password.
Ora, essendo un programma standalone, la password la memorizzo su un file txt esterno.
La password è criptata, tra un pò vi posto il codice. Spiego in poche parole:
- l'utente inserisce la password su una Text1.Text
- appena clicca su OK (pusante di conferma) dico al programma di confrontare il contenuto della Text1.text con quello presente sul file.txt
Faccio un esempio: se la password presente nel file.txt è "ciao", criptata appare "/&()##@è4§"; se poi nella Text.Text inserisco "ciao" questo significa che la password è corretta, quindi il programma deve avviarsi. Però quello che mi manca è la decodifica del testo contenuto all'interno del file.txt.
Ora in altre parole il mio programma fa questo confronto:

if Text1.Text = file.txt
traduco
Se "ciao" ="/&()##@è4§"
e giustamente non vede la stessa password, perchè prima devo decriptarla, ok?

Ora la password l'ho criptata con un codice, però (forse per le scarse conoscenze) non so come decriptarla. Ecco qui il codice che utilizzo nel caso la si vuole cambiare la password:



Codice: Seleziona tutto
Private Sub Command1_Click()
 
  Open "c:\file.txt" For Output As #4  ' Apro il file
   
    'Creazione della chiave
    ST = " 0123456789zxcvbnmlkjhgfdsaqwertyuiop"  ' ST=stringa
    LU = Len(txtCambiare.Text) * 2                           ' LU=lunghezza
    CH = Asc(Val(txtCambiare.Text)) & Mid(ST, LU, 8)  ' CH=chiave
   
    Select Case LU
    Case Is <= 5
        Print #4, "M;:" & CH & "^?="
    Case Is <= 12
       Print #4, "|\£m" & CH & "opè+"
    End Select

Close #4  ' Chiudo
End Sub


Sapete ricavarne il decriptato?

Ciao ciao
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45

Sponsor
 

Re: Visual Basic 6, ho criptato file txt, ed ora come decrip

Postdi archimede » 08/11/07 13:52

Markew ha scritto:Sapete ricavarne il decriptato?
Scusa ma a che ti serve? Non basta criptare l'input dell'utente con la medesima procedura e confrontarlo con la password criptata?

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Markew » 08/11/07 14:04

Eh il problema nasce nel momento in cui verifico se quello che ha inserito l'utente è uguale alla password contenuta nel file.txt; essendo criptata, il programma (giustamente) mi dice che è diversa perchè (riportando l'esempio precedente) "ciao" non può essere uguale a "?^#%&!|".

Devo decriptare solamente per far sì che visual basic mi riconosce la password contenuta nel file.txt. Ciò ovviamente resta un'oerazione interna al programma, ossia l'utente non vede nulla.

Quindi: "ciao" (inserito nella Text1.Text) = (decript) "ciao" (nel file.txt)
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45

Postdi Markew » 08/11/07 14:08

Aaaah... scusami non avevo capito :lol:
Potrebbe essere una grande idea! 8)

Oggi provo e vedo come va... cmq se c'è un modo per applicare la mia idea sarei interessato comunque a saperlo, sai... la cultura su questi programmi non basta mai... ;)
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45

Problemi in corso...

Postdi Markew » 08/11/07 18:47

Allora, il problema l'ho risolto, come avevamo detto; però ora ne è uscito uno proprio strano, sempre riferito alla criptatura: che dici, posso continuare qui? Vorrei evitare di aprire un altro post, ditemi voi.

Il problema: supponiamo che come password criptata ho impostato "ciao".
- Avviamo il progetto.
Ora, l'utente deve inserire la password nella Text1.Text, e poi confermare con un pulsante.
Se prova ad inserire "ci", oppure "ao", oppure "cici", oppure "ioio"... insomma, tutte le combinazioni che riportano gli stessi caratteri della password criptata ("ciao"), il programma la riconsce come valida, e prosegue con l'avviarsi, come è possibile questa cosa?
In teoria non potrebbe... anzi, non dovrebbe proseguire se la password è sbagliata.
Ho provato diverse combinazioni, anche a + caratteri, e questa la riconosce sempre valida, mentre se provo con una stringa contenente diversi caratteri aggiunti (esempio "ciclo", "aostia",ecc...) la password viene riconosciuta come non valida.

Dove devo modificare il mio codice? Non so più cosa fare... :neutral:


P.S. Grazie per l'edit Dylan
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45

Postdi hydra » 08/11/07 19:08

Se non posti il codice che esegue al login penso sarà difficile darti una risposta. :roll:
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Postdi Markew » 08/11/07 19:18

Hai ragione, scusa.

Codice: Seleziona tutto
Private Sub cmdOk_Click()

libero = FreeFile
Dim contenutoFile As String
Dim vecchiapass As String

  Open App.Path & "\password.txt" For Input As #libero  ' Apro il file
   
 
    ST = "0123456789zxcvbnmlkjhgfdsaqwertyuiop" ' ST=Stringa
    LU = Len(txtPassword.Text) * 2  ' LU=Lunghezza
    CH = Asc(Val(txtPassword.Text)) & Mid(ST, LU, 8) ' CH=Chiave
   
    Select Case LU
    Case Is <= 5
        Print #4, "M;:" & CH & "^?="
    Case Is <= 12
       Print #4, "|\£m" & CH & "opè+"
    End Select

  Line Input #libero, contenutoFile

If contenutoFile = vecchiapass Then
  MsgBox "CORRETTA"
  Close #libero

Else
  lblMessgg.Caption = "ERRATA"
  txtPassword.Text=""
  txtPassword.SetFocus
End If
End Sub
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45

Postdi Markew » 08/11/07 23:56

Un errore l'ho ritrovato: nel select case quando dovevo scrivere sul file gli davo una determinata locazione "#4" anzichè metterci il FreeFile.

Però il problema rimane :neutral:
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45

Postdi Markew » 09/11/07 01:18

Ho risistemato il codice, perchè avevo fatto un bel casotto con il copia/incolla.
Questo è l'ultimo codice che, come accennato porta sempre lo stesso problema:

Codice: Seleziona tutto
Private Sub cmdOk_Click()

libero = FreeFile
Dim contenutoFile As String
Dim vecchiapass As String

  Open App.Path & "\password.txt" For Input As #libero  ' Apro il file
   
 
    ST = "0123456789zxcvbnmlkjhgfdsaqwertyuiop" ' ST=Stringa
    LU = Len(txtPassword.Text) * 2           ' LU=Lunghezza
    CH = Asc(Val(txtPassword.Text)) & Mid(ST, LU, 8) ' CH=Chiave
   
    Select Case LU
    Case Is <= 5
        vecchiapass= "M;:" & CH & "^?="
    Case Is <= 12
        vecchiapass= "|\£m" & CH & "opè+"
    End Select

  Line Input #libero, contenutoFile

If contenutoFile = vecchiapass Then
  lblMessgg.Caption = "CORRETTA"
 

Else
  lblMessgg.Caption = "ERRATA"
  txtPassword.Text=""
  txtPassword.SetFocus
End If
 Close #libero
End Sub
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45

Postdi Markew » 09/11/07 17:31

Niente, il codice è perfettamente NON funzionante :lol: :lol:
Per ora mi interessa solamente criptare una password inserita su un txt esterno, però adottando la conversione in Ascii (ho provato anche quella con valori, caratteri...) non funge come dovrebbe (per problemi citati ed altri verificati oggi). Se qualcuno di voi sa come convertirla (però in modo che non mi va in conflitto con la restante tastiera gliene sarei grato).

Intanto vedo se riesco con altri metodi.
ciao ciao
Markew
Utente Senior
 
Post: 196
Iscritto il: 04/04/06 23:45


Torna a Programmazione


Topic correlati a "Visual Basic 6, ho criptato file txt, ed ora come decripto?":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti