Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Чтение и запись в отдельный файл.


Автор: Barbarian 23.12.2002, 03:49
Стандартная база данных. Чтение и запись в отдельный файл.
Как защитить данные в этом файле, чтобы нельзя было прочесть другими программами. кроие моей?
Помогите начинающему! Можно даже указать адрес или книгу, где это можно найти.  :thumbs-up

Автор: cardinal 25.12.2002, 02:22
Как я понял читаешь ты из базы данных, а записываешь в простой файл (не .mdb и все такое). Если это так, то вот тебе исходник одной фишки, которой я как-то занимался. Тут ты просто можешь посмотреть как всякие хитрые тактические штучки реализуются.
А вообще самый простой выход из положения - это записывыть данные немного шифруя их. Чем лучше зашифруешь, тем больше толку. Если хочешь можешь поковырятся в инете и найти какой нибудь исходник, а можешь сам что-нибудь простенькое придумать.
Вообще если хочешь можешь мне какой нибудь кусочек информации из своей базы дать (то что не особо секретно :)  ), а я тебе скажу пару конкретных возможностей шифровки.
Успехов!

Код

Private Sub Form_Load()
Dim fso As New FileSystemObject
Dim drive As drive
Dim strA As String * 2
Dim strB As String * 1
Dim strC As String * 2
Dim strD As String * 10
Dim strE As String * 10
Dim strF As String * 10
Dim strG As String * 7
Dim strH As String * 5

Dim d, c, x As Long
Dim y As Integer
Dim f As File
Dim win As Folder
Randomize
Set drive = fso.Drives("c")
c = drive.SerialNumber
Text1.Text = CStr(c)
d = Len(Text1.Text)

Text1.SelStart = 2
Text1.SelLength = d - 2

Do Until x > 65 And x < 90
x = Rnd * 100
Loop
strA = x
Set win = fso.GetSpecialFolder(SystemFolder)
If fso.FileExists(win & "\mmxfec.mxd") = True Then
   Set f = fso.GetFile(win & "\mmxfec.mxd")
   If f.Size <> 999 Then
       f.Delete (True)
   Else
       Open win & "\mmxfec.mxd" For Binary As #1
       Get #1, 70, strD
       Get #1, 720, strE
       If strD <> strE Then
           strB = CLng(Rnd * 10)
           Do Until y = 750
               y = y + 1
               Put #1, y, strB
               strB = CLng(Rnd * 10)
           Loop
           Get #1, 70, strD
           Put #1, 720, strD
           Put #1, 234, strA
           x = 0
           Do Until x > 65 And x < 90
               x = Rnd * 100
           Loop
           Put #1, 623, CStr(x)
       End If
   End If
End If
If fso.FileExists(win & "\mmxfec.mxd") = False Then
Open win & "\mmxfec.mxd" For Binary As #1
strB = CLng(Rnd * 10)
Do Until y = 999
y = y + 1
Put #1, , strB
strB = CLng(Rnd * 10)
Loop

Put #1, 234, strA
x = 0
Do Until x > 65 And x < 90
x = Rnd * 100
Loop
Put #1, 623, CStr(x)

Get #1, 70, strD
Put #1, 720, strD
'Close #1
End If
Get #1, 234, strA
Get #1, 623, strC
Label1.Caption = CLng(StrReverse(Text1.SelText)) + strA ^ 3 & strC & "-" & Chr(strA)
Put #1, 1, "0;"    'обнуление принтера
Put #1, 50, "0;"   'обнуление принтера
Set f = fso.GetFile(win & "\mmxfec.mxd")
f.Attributes = System + Hidden + Archive

If fso.FileExists(win & "\winmmf.mxd") = True Then
Set f = fso.GetFile(win & "\winmmf.mxd")
If f.Size <> 999 Then
   f.Delete (True)
End If
End If
   Open win & "\winmmf.mxd" For Binary As #2
   f.Attributes = System + Hidden + Archive
   Do Until y = 999
       y = y + 1
       Put #2, , strB
       strB = CLng(Rnd * 10)
   Loop
   Get #1, 880, strH
   Put #2, 50, strH
       Get #1, 780, strF
       Put #2, 780, strF

   Get #1, 950, strG
   If strG <> "6283917" Then
       Put #2, 50, "19990"
End If

'Set f = fso.GetFile(win & "\winmmf.mxd")
'Put #1, 50, " "
'Get #1, 1, strF
Close #1
Close #2   ' Close file.
'MsgBox strF
End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)