ConnectDBProt




Public Sub ConnectToDatabase(DataControl As Control, _
Path As String, SourceOrSQL As Variant)

Const BYTE_MAX = 32
Const PWD_BYTE_POS = &H43

Dim bAccessKey(1 To BYTE_MAX) As Byte
Dim bCryptKey(1 To BYTE_MAX) As Byte
Dim SPass As String
Dim I As Long

DataControl.DatabaseName = Path

bAccessKey(1) = &H86
bAccessKey(2) = &HFB
bAccessKey(3) = &HEC
bAccessKey(4) = &H37
bAccessKey(5) = &H5D
bAccessKey(6) = &H44
bAccessKey(7) = &H9C
bAccessKey(8) = &HFA
bAccessKey(9) = &HC6
bAccessKey(10) = &H5E
bAccessKey(11) = &H28
bAccessKey(12) = &HE6
bAccessKey(13) = &H13
bAccessKey(14) = &HB6
bAccessKey(15) = &H8A
bAccessKey(16) = &H60
bAccessKey(17) = &H54
bAccessKey(18) = &H94
bAccessKey(19) = &H7B
bAccessKey(20) = &H36
bAccessKey(21) = &H91
bAccessKey(22) = &H7F
bAccessKey(23) = &HDF
bAccessKey(24) = &HB1
bAccessKey(25) = &H77
bAccessKey(26) = &HF4
bAccessKey(27) = &H13
bAccessKey(28) = &H43
bAccessKey(29) = &HCF
bAccessKey(30) = &HAF
bAccessKey(31) = &HB1
bAccessKey(32) = &H33

Dim iFile As Integer
iFile = FreeFile

Open Path For Binary As #iFile
Get #iFile, PWD_BYTE_POS, bCryptKey
Close iFile
SPass = ""
For I = 1 To BYTE_MAX
If bCryptKey(I) = bAccessKey(I) Then Exit For
SPass = SPass & Chr$(bCryptKey(I) Xor bAccessKey(I))
Next I
DataControl.Connect = ";PWD=" & SPass
DataControl.RecordSource = SourceOrSQL
DataControl.Refresh
End Sub










( connectdbprot.html )- by Paolo Puglisi - Modifica del 17/12/2023