| Можно установить пароль на базу данных, а можно данные шифровать в ручную с помощью 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
 
 Ответить
       |