Newsgroup: it.comp.lang.visual-basic
Titolo: curiosità

Mettiamo il caso che io abbia un file di testo txt o ini contenente
informazioni necessarie al mio programma per funzionare correttamente.
Per evitare che un curioso qualunque apra con il notepad questo file
compromettendo cosi il funzionamento corretto del programma, è possibile
registrare queste informazioni in un file con una estensione propria del
programma (per esempio miofile.aaa)???
Grazie
Luca
PS: Le informazioni di questo file devono poter essere lette e modificate
soltanto in esecuzione del programma con le istruzioni input/output

 ha scritto nel messaggio
news:cgSS6.2342$%m1.7...@news.infostrada.it...


 ha scritto nel messaggio
news:cgSS6.2342$%m1.7...@news.infostrada.it...

Prova a Crittografare Il file di Testo quando non lo usi.
Esempio Usando RC4:
Crea un nuovo modulo di classe
Class1:
Option Explicit
Event Progresso(Percentuale As Long)
Private Chiave As String
Private Matrix(0 To 255) As Integer
Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Public Sub Crypta_File(File As String, DestFile As String, Optional Password
As String)
  Dim NuovoFile As Integer
  Dim ByteArray() As Byte
    If (Not VerificaFile(File)) Then
    Call Err.Raise(vbObjectError, , "Il File Non Esiste")
    Exit Sub
  End If
  NuovoFile = FreeFile
  Open File For Binary As #NuovoFile
  ReDim ByteArray(0 To LOF(NuovoFile) - 1)
  Get #NuovoFile, , ByteArray()
  Close #NuovoFile
    Call Crypta_Byte(ByteArray(), Password)
  If (VerificaFile(DestFile)) Then Kill DestFile
    NuovoFile = FreeFile
  Open DestFile For Binary As #NuovoFile
  Put #NuovoFile, , ByteArray()
  Close #NuovoFile
End Sub
Public Sub Decrypta_File(Files As String, DestFile As String, Optional
Password As String)
  Dim NuovoFile As Integer
  Dim ByteArray() As Byte
    If (Not VerificaFile(Files)) Then
  Call Err.Raise(vbObjectError, , "Il File Non Esiste")
    Exit Sub
  End If
  NuovoFile = FreeFile
  Open Files For Binary As #NuovoFile
  ReDim ByteArray(0 To LOF(NuovoFile) - 1)
  Get #NuovoFile, , ByteArray()
  Close #NuovoFile
    Call Decrypta_Byte(ByteArray(), Password)
  If (VerificaFile(DestFile)) Then Kill DestFile
  NuovoFile = FreeFile
  Open DestFile For Binary As #NuovoFile
  Put #NuovoFile, , ByteArray()
  Close #NuovoFile
End Sub
Public Sub Decrypta_Byte(ByteArray() As Byte, Optional Password As String)
  Call Crypta_Byte(ByteArray(), Password)
End Sub
Public Property Let Password(Nuovo_Valore As String)
  Dim a As Long
  Dim b As Long
  Dim Temp As Byte
  Dim Password() As Byte
  Dim LenChiave As Long
    If (Chiave = Nuovo_Valore) Then Exit Property
  Chiave = Nuovo_Valore
  Password() = StrConv(Chiave, vbFromUnicode)
  LenChiave = Len(Chiave)
  For a = 0 To 255
    Matrix(a) = a
  Next a
  For a = 0 To 255
    b = (b + Matrix(a) + Password(a Mod LenChiave)) Mod 256
    Temp = Matrix(a)
    Matrix(a) = Matrix(b)
    Matrix(b) = Temp
  Next
End Property
Public Function VerificaFile(NomeFile As String) As Boolean
  On Error GoTo Fine
  Call FileLen(NomeFile)
  VerificaFile = True
  Exit Function
Fine:
End Function
Public Sub Crypta_Byte(ByteArray() As Byte, Optional Password As String)
  Dim i As Long
  Dim j As Long
  Dim Temp As Byte
  Dim Offset As Long
  Dim LenOrigine As Long
  Dim LenMax As Long
  Dim PercCorrente As Long
  Dim PercProssima As Long
  Dim sMatrix(0 To 255) As Integer
  If (Len(Password) > 0) Then Me.Password = Password
  Call CopyMem(sMatrix(0), Matrix(0), 512)
  LenOrigine = UBound(ByteArray) + 1
  LenMax = LenOrigine
    For Offset = 0 To (LenOrigine - 1)
    i = (i + 1) Mod 256
    j = (j + sMatrix(i)) Mod 256
    Temp = sMatrix(i)
    sMatrix(i) = sMatrix(j)
    sMatrix(j) = Temp
    ByteArray(Offset) = ByteArray(Offset) Xor (sMatrix((sMatrix(i) +
sMatrix(j)) Mod 256))
      If (Offset >= PercProssima) Then
      PercCorrente = Int((Offset / LenMax) * 100)
      PercProssima = (LenMax * ((PercCorrente + 1) / 100)) + 1
      RaiseEvent Progresso(PercCorrente)
    End If
  Next
    If (PercCorrente <> 100) Then RaiseEvent Progresso(100)
End Sub
Richiama L'evento Crypta_File in un form :
class1.Crypta_File "c:\tuofile.ini", "c:\tuofile.ini", "tua Password"
Per Decryptarlo Richiama L'evento Decrypta_File
class1.Decrypta_File "c:\tuofile.ini", "c:\tuofile.ini", "tua Password"
spero di esserti stato di aiuto.
By Utente Win2k.

Puoi salvare il file in binario ed in parte dovrebbe diventare
incomprensibile.
ciao
	maxx

-- 
Massimo Conter
<Consulenze Informatiche e Sviluppo Software>
email: 
emm...@laserinforma.com
email urgenti:	
03397...@posta.tim.it

per fortuna che avevo chiesto "una soluzione semplice e comprensibile"
visto che non sono un grandissimo esperto di vb...
comunque grazie
ugualmente per il tentativo...
--------------------------------
Inviato via 
http://usenet.iol.it