Можно установить пароль на базу данных, а можно данные шифровать в ручную с помощью XOR: Public Function Encrypt(ByVal Source As String, ByVal Password As String) As String 'шифрование данных Dim a As String Dim B As String Dim c As String Dim d As String Dim lentext As Long Dim lenpass As Long Dim cn As Long 'ввод исходных данных 'исходный текст для шифрования - запрашивается от пользователя, к примеру - a = Source 'пароль: может запрашиваться от пользователя B = Password 'итог шифрования c = "" 'узнаем длины каждой из строк lentext = Len lenpass = Len(B) 'собственно шифрование For cn = 1 To lentext 'в этой строке разберитесь сами, здесь попросту выполняется функция Xor с каждым символом исходной строки и соответствующим символом пароля, как бы "повторенным" на всю длину исходного текста. Mid берет из середины строки символ, Asc - превращает его в ASCII-код, Str - превращает число в строку, Trim - удаляет пробелы d = Trim(Str(Asc(Mid(a, cn, 1)) Xor Asc(Mid(B, ((cn - 1) Mod lenpass) + 1, 1)))) 'а теперь сделаем так, чтобы каждый символ занимал ровно три позиции, вне зависимости от величины его ASCII-кода. А иначе как вы будете потом при расшифровке разбивать строку на символы? Select Case Val(d) Case 0 To 9 d = "00" + d Case 10 To 99 d = "0" + d End Select c = c + d 'ну вот и все, и так - с каждым символом из исходной строки Next cn 'в итоге в переменной с - зашифрованная строка, каждой исходной букве соответствует 3 символа, ее можно записать в любое место - в документ, к примеру: Encrypt = c End Function Public Function Decrypt(ByVal Code As String, ByVal Password As String) As String 'расшифровывание данных Dim a As String Dim B As String Dim c As String Dim lentext As Long Dim lenpass As Long Dim cn As Long 'строка для расшифровки c = Code 'пароль B = Password 'итог расшифровывания a = "" 'узнаем длины каждой из строк lentext = Len(c) lenpass = Len(B) 'собственно расшифровывание For cn = 1 To lentext Step 3 a = a + Chr(Val(Mid(c, cn, 3)) Xor Asc(Mid(B, (Int(cn / 3) Mod lenpass) + 1, 1))) Next cn 'в итоге в переменной a - расшифрованная строка, ее можно записать в любое место - в документ, к примеру: Decrypt = a End Function
Ответить
|