|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2011
Messaggi: 1
|
encrypt per Access in visualbasic
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 Codice:
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 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:50.