err404

Typ:
neutral
Postów: 14
Zarejestrowany: Nov 2002
|
|
Jedyne co możesz zrobić to.....
Zacząć pliki szyfrować a jak to możesz zrobić hmmm
poniżej zamieszcam ci kody modułów które pozwolą ci na bezpieczne szyfrowanie zawartości plików(szyfrowanie przez fukcje asc i chr - czyli operacje na wartosciach ASCII , może się skończyć źle jeżeli czytasz plik liniami, bo chr(13) to enter )
Kod modułu szyfrowania: '--------------------------------------- Option Explicit Function EncodeData(Text As String) As String
Dim i As Integer, a As Integer Dim znakA As String, znakB As String, tmp As String Dim SubRepA As Integer, SubRepB As Integer, RepStr As Integer Dim LocalKey As String tmp = "" LocalKey = "" 'ta petla pozwala na wygenerowanie klucza potrzebnego do zakodowania 'ciagu znaku dowolnej dlugosci Do While Len(LocalKey) < Len(Text) LocalKey = LocalKey + Key Loop 'Ta petla wykonuje kodowania For i = 1 To Len(Text) znakA = Mid(LocalKey, i, 1) SubRepA = InStr(1, Alphabet, znakA, vbBinaryCompare) znakB = Mid(Text, i, 1) SubRepB = InStr(1, Alphabet, znakB, vbBinaryCompare) RepStr = SubRepB + SubRepA If RepStr > Len(Alphabet) Then RepStr = RepStr - Len(Alphabet) tmp = tmp + Mid(Alphabet, RepStr, 1) Next i EncodeData = tmp Debug.Print tmp End Function '--------------------------------------- Kod Modułu deszyfrowania: '--------------------------------------- Option Explicit Function DecodeData(Text As String) As String
Dim i As Integer Dim znakA As String, znakB As String, tmp As String Dim SubRepA As Integer, SubRepB As Integer, RepStr As Integer Dim LocalKey As String tmp = "" LocalKey = "" Do While Len(LocalKey) < Len(Text) LocalKey = LocalKey + Key Loop For i = 1 To Len(Text) znakA = Mid(LocalKey, i, 1) SubRepA = InStr(1, Alphabet, znakA, vbBinaryCompare) znakB = Mid(Text, i, 1) SubRepB = InStr(1, Alphabet, znakB, vbBinaryCompare) RepStr = SubRepB - SubRepA If RepStr < 1 Then RepStr = RepStr + Len(Alphabet) tmp = tmp + Mid(Alphabet, RepStr, 1) Next i DecodeData = tmp End Function '--------------------------------------- Kod modułu zmiennych globalnych Option Explicit Global Const Alphabet As String = "aąbcćdeęfghijklłmnńoópqrsśtuvwxyzżźAĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUVWXYZŻŹ0123456789~`!@#$%^&*()-=_+{}[]|:;',.<>/? """ Global Const Program_Key As String = "AxDf93fo9d1ueJpQtMslJdaU94yaiIpW" Global User_Key As String Global Key As String '--------------------------------------- Kod modułu zarządzania kluczem '---------------------------------------
Option Explicit
Sub ExtractKey() Dim i As Integer, a As Integer Dim znakA As String, znakB As String Dim SubRepA As Integer, SubRepB As Integer, RepStr As Integer Key = "" For i = 1 To 32 znakA = Mid(Program_Key, i, 1) SubRepA = InStr(1, Alphabet, znakA, vbBinaryCompare) znakB = Mid(User_Key, i, 1) SubRepB = InStr(1, Alphabet, znakB, vbBinaryCompare) RepStr = SubRepA + SubRepB If RepStr > Len(Alphabet) Then RepStr = RepStr - Len(Alphabet) Key = Key + Mid(Alphabet, RepStr, 1) Next i End Sub Sub GenerateUserKey() 'Funkcja generuje losowy klucz Dim i As Integer User_Key = "" For i = 1 To 32 User_Key = User_Key + Mid(Alphabet, Int(Rnd * Len(Alphabet)) + 1, 1) Next i End Sub '---------------------------------------
ok jak już skopiujesz sobie te kody do jakiś modułów to.....
Muszisz podać Programowi twój kod użytkownika(zastanawiasz się po chuj takie to skomplikowane - a ja ci mówie że to zabezpiecza przed odczytaniem hex edytorem bo program w czasie pracy generuje wszystkie klucze a nie ma ich zapisanych w sobie) ok tak czy inaczej to musi być jakiś string w zasadzie dowolny (powinien miec 32 znaki-jeżeli nie to musisz zmienić kod w module odpowiedzialnym za generowanie i wyciaganie nowego klucza), bo fukcje szyfrowania i tak sobie go wydłużą(jezeli nic nie zmieniasz w kodzie wyciagajacym klucz to ta opcja działa tylko jeżeli kodujesz coś dłuższego niż 32 znaki) do długości szyfrowanych danych ok teraz robisz taki patent w sekcji gdzie umieściłem zmienne globalne możesz do User_Key dopisać coś w stylo Global Const User_Key ="Kocham Magde i Visual Basica" albo lepiej zrobić patent taki że w pierwszej linijce pliku zawrzeć jakiś string który będzie twoim kluczem i teraz to będzie wyglądało tak Sub LoadPlik() Dim Filen as integer Dim myStr as string Filen=FreeFile'pobieramy nr uchwytu(pierwszy wolny normalnie 1 ale jak otwartych plikow jest wiecej niz 1 to juz nie jest tak wesolo free file zabezpiecza nas przed błedami) open "plik.txt" for input as #filen'otwieramy plik do odczytu line input #filen, user_key'pobieramy klucz uzytkownika z pliku call ExtractKey()'tu prgram generuje klucz wlasciwy z klucza uzytkownika i klucza programu line input #filen, myStr'wczytuje linie do myStr myStr=Decode(myStr)i dekoduje ja w oparciu o klucze 'no i jakiś kod tam dalej Close #filen End Sub Sub SavePlik() Dim Filen as integer Dim myStr as string Filen=FreeFile open "plik.txt" for output as #filen call GenerateUserKey()'generuje losowy klucz(dobra sprawa bo ciezko potencjalnemu crackerowi wpasc co sie zmienia bo zamienia sie cala zawartosc pliku przyy zapisie dzieki dynamicznej zmianie zawartosci klucza) print #filen, user_key' drukujemy klucz do pierwszej lini call ExtractKey()' karzemy sklecic nowy klucz z nowo wygenerowanego klucza uzytkownika myStr=Encode(myStr)'kodujemy dane print #filen, myStr'i fruuu je do pliku 'no i jakiś kod tam dalej Close #filen End Sub
[Post edytowany dnia 15-01-2003 16:27 przez err404]
|