Hej!Decryptering av text från fil
Har använt en decrypteringsfunktion som finns här på Pellesoft åt en kund i några år, utan problem. Funktionen tar tecken från en textfil och decrypterar dem med en "nyckel":
Public Function GetDBPWD(sPWDfile As String, sCryptKey As String) As String
Dim sEncTeck As String * 1 '*1 makes thath "Get" only reads one chr from the file and puts it in "sEncTeck"
Dim lIdx As Long
Dim lB As Long
Dim lP As Long
Dim lCountNow As Long
Dim sPassKey As String
Dim lMaskLoop As Long
Dim lMask As Long
'This resets the "rnd" to make sure thath the folowing op. is getting the same mask
Rnd -1
Randomize 1
GetDBPWD = ""
On Error GoTo bd
For lIdx = 1 To Len(sCryptKey)
lB = lB + Sqr(Asc(Mid(sCryptKey, lIdx, 1)))
Next lIdx
lCountNow = 1
Do
lB = Sqr(lB)
Loop Until lB <= 255 And lB >= 0
lB = Int(lB)
Open sPWDfile For Binary As #1
For lIdx = 1 To LOF(1)
lCountNow = lCountNow + 1
If lCountNow > 255 Then lCountNow = 1
lP = lP + 1
If lP > Len(sCryptKey) Then lP = 1
Get #1, lIdx, sEncTeck
sPassKey = Asc(Mid(sCryptKey, lP, 1))
'the masker
For lMaskLoop = 1 To sPassKey
lMask = Int(Rnd * 255)
Next
sEncTeck = Chr(((((Asc(sEncTeck) Xor sPassKey) Xor lCountNow) Xor lMask) Xor lB))
'the masker end
GetDBPWD = GetDBPWD & sEncTeck
Next lIdx
bd:
Close #1
End Function
Nu är problemet att kunden börjat använda programmet även i Kina, och då fungerar inte decrypteringen längre?!?
Funktion läses i mitt fall ett databaslösenord från textfilen. Lösenordet är 'fish' nyckeln är 'DBKey' och i filen står ASC-tecknena 121,120,80,208. I Kina får de strängen 'fis' medans fjärde tecknet blir en hake (typ lilla R, asc 218?), varvid lösenordet blir fel?!!?
Hoppas någon förstår mitt problem, och kan komma med tips!
/Michael