Ciao Ragazzi sono nuovo e spero di non sbagliare sezione o impostazione del messaggio,
Vi spiego il mio problema, ho utilizzato un codice che mi permette di criptare e decriptare uno specifico campo, funziona perfettamente ma l'unico inconveniente è che nel criptare il campo utilizza codici asci ad esempio codificando un codice fiscale mi dà come risultato
¸©ª¬´©™–g¸—–©––˜¸ siccome lo esporto in xml nell'importazione non riconoscono questi caratteri e creano problemi di accettazione.
vi è un modo che permetta di codificare con caratteri "non ascii"? ho provato a cercare altri comandi da sostituire ad ASC ma non penso che sia questo il problema,
spero di essere stato chiaro vi incollo il codice per vedere se si può modificare per ottenere il risultato richiesto.
grazie a tutti
Option Compare Database
Option Explicit
Const PASSWORD_KEY = "f"
'modificare la chiave con una a piacimento
'================================================
' Function: encrypt
'
' Purpose: To encrypt or decrypt a string using
' a predefined key value stored as
' the constant PASSWORD_KEY. The same
' string encrypted twice won't always
' look the same because the function
' chooses a random starting position
' within the key to encrypt values.
'
' Call: gResult = encryt("Hello World", true)
'
' In: strFull - String containing the
' text to encrypt/decrypt
'
' fEncrypt - Boolean set to TRUE to
' encrypt the string, FALSE
' to decrypt it.
'
' Out: none
'
' Returns: String - The encrypted/decrypted
' value if successful, ""
' otherwise
'
' History: 98/06/10 created by Dima Mnushkin
'
'================================================
Public Function encrypt(strFull As String, _
fEncrypt As Boolean) As String
On Error GoTo Err_encrypt
Dim intInputPos As Integer
Dim intPassKeyPos As Integer
Dim strOutput As String
Dim intTemp As Integer
Dim strStartingPos As String
If strFull = "" Then GoTo Exit_encrypt
' Encrypt a value
If fEncrypt Then
' Initialize the random function
Randomize
' Determine the starting position to use in
' the encryption string
intPassKeyPos = Int(Len(PASSWORD_KEY) * _
Rnd + 1)
' Encrypt the starting position used in
' preparation to storing it in the middle of
' the encrypted result
intTemp = intPassKeyPos + _
Asc(Left(PASSWORD_KEY, 1))
If intTemp > 255 Then intTemp = intTemp - 255
strStartingPos = Chr(intTemp)
' Encrypt the full string
For intInputPos = 1 To Len(strFull)
intPassKeyPos = intPassKeyPos + 1
' Wrap to the beginning of the key if we have
' have used up the last character.
If intPassKeyPos > Len(PASSWORD_KEY) Then
intPassKeyPos = 1
End If
' Add the value of the character to be
' encrypted to the value of the character
' stored at the current position in the key
intTemp = Asc(Mid(strFull, intInputPos, 1) _
) + Asc(Mid(PASSWORD_KEY, _
intPassKeyPos, 1))
If intTemp > 255 Then intTemp = intTemp - 255
' If we are at middle of the result string,
' insert our encrypted starting position so
' we can decrypt this string later.
If CInt(Len(strFull) / 2) + 1 = intInputPos _
Then strOutput = strOutput & strStartingPos
strOutput = strOutput & Chr(intTemp)
Next intInputPos
' Decrypt a value
Else
' Retrieve the encrypted starting position from
' the middle of the string to be decrypted
intPassKeyPos = Asc(Mid(strFull, _
CInt((Len(strFull) - 1) / 2) + 1, 1)) - _
Asc(Left(PASSWORD_KEY, 1))
If intPassKeyPos < 0 Then _
intPassKeyPos = intPassKeyPos + 255
' Decrypt the full string
For intInputPos = 1 To Len(strFull)
intPassKeyPos = intPassKeyPos + 1
If intPassKeyPos > Len(PASSWORD_KEY) Then _
intPassKeyPos = 1
' Decrypt each character by subtracting the
' value of the corresponding character stored
' in the key.
intTemp = Asc(Mid(strFull, intInputPos, 1)) - _
Asc(Mid(PASSWORD_KEY, intPassKeyPos, 1))
If intTemp <= 0 Then intTemp = intTemp + 255
' If we are looking at the middle character,
' ignore it since its the encrypted starting
' position.
If intInputPos = CInt((Len(strFull) - 1) / 2) + _
1 Then
intPassKeyPos = intPassKeyPos - 1
Else
strOutput = strOutput & Chr(intTemp)
End If
Next intInputPos
End If
encrypt = strOutput
Exit_encrypt:
Exit Function
Err_encrypt:
encrypt = ""
MsgBox Error
Resume Exit_encrypt
End Function