Ciao a tutti!
l'obiettivo è quello.
Ora, con queste
riesco a gestire agevolmente la crittografia e la decrittografia.
Il problema mi sorge quando uso "WHERE" e "ORDERBY". Dato che io passo il dato in chiaro ma lui cerca tra dati crittografati, non ho il risultato sperato.
Qualcuno si è già cimentato?
Avete alternative?
Stavo pensando: creo una classe e decritto in runtime tutte le tabelle ma dove le inserisco? In una TableView? È possibile? Non l'ho mai usata.
l'obiettivo è quello.
Ora, con queste
B4X:
Private Sub EncryptString(myString As String) As String
Dim myEncryptedDataByte() As Byte
Dim c As B4XCipher
myEncryptedDataByte = c.Encrypt(myString.GetBytes("utf-8"), strPassword)
Dim su As StringUtils
Return su.EncodeBase64(myEncryptedDataByte)
End Sub
Private Sub DecryptString(myString As String) As String
Dim myByteToBeDecrypted() As Byte
Dim su As StringUtils
myString = DeEscapeField(myString) 'Sub per eliminare eventuali parentesi quadre all'inizio e alla fine del record
If IsNumber(myString) Then ' Per i casi in cui bisogna leggere i rowid e dati non crittografati
Return myString
Else
Try
myByteToBeDecrypted = su.DecodeBase64(myString)
Catch
Log(LastException)
End Try
Dim c As B4XCipher
Try
Dim b() As Byte = c.Decrypt(myByteToBeDecrypted, strPassword)
Catch
Log(LastException)
End Try
Try
Private myString2 As String = BytesToString(b, 0, b.Length, "utf-8")
Catch
Log(LastException)
End Try
End If
Return myString2
End Sub
Il problema mi sorge quando uso "WHERE" e "ORDERBY". Dato che io passo il dato in chiaro ma lui cerca tra dati crittografati, non ho il risultato sperato.
Qualcuno si è già cimentato?
Avete alternative?
Stavo pensando: creo una classe e decritto in runtime tutte le tabelle ma dove le inserisco? In una TableView? È possibile? Non l'ho mai usata.