Newsgroup: it.comp.appl.access
Titolo: CRIPTARE

Salve a tutti
Ho la necessità di criptare dei dati di una tabella.
Diciamo che ho una maschera nella quale inserisco dei prodotti con il prezzo
di acquisto ed il prezzo di vendita.
Vorrei poter criptare il prezzo di acquisto in modo che, anche se viene
aperta la tabella non si possa leggere il valore in chiaro.
Naturalmente essendo un prezzo il campo è in formato valuta.
Avevo pensato di trasformare in ascii ogni numero ed aggiungere un certo
valore, trasformare il valore ascii e salvarlo ma in un campo valuta ???
come faccio ?
Qualcuno mi può aiutare anche con un pò di codice.........
Ho creato una funzione che inserisce in una tabella una password criptata
con il seguente sistema:
Mettiamo che la PW sia pippo
Scorro la PW dal primo carattere a sinistra to destra
Estraggo il valore ascii e aggiungo dieci
metto il valore in una stringa temporanea sommandola (a=a+b)
nexto
salvo
Anche se il sistema fa schifo funziona (se qualcuno mi può illuminare con
qualcosa di + professionale)
ma solo in parte perchè non riconosce le maiuscole e le minuscole come
invece io vorrei.
Come posso fare ?
Volendo nascondere un campo di una tabella, da programma come si fa ?
E' comunque sempre possibile visualizzarla avendo la sola tabella ?
Grazie a chi vorrà aiutarmi
Alberto
BUONE FESTE A TUTTO L'NG !!!

E' comunque sempre possibile visualizzarla avendo la sola tabella ?
credo proprio di si... non so se assegnando al campo un nome strano
(editando la tabella con un editor binario) Access si impalla e non lo
mostra. Comunque non ti conviene affatto tentare questa strada perchè al 99%
sputtanerai il DB a prova di /decompile :-)
PS: non ripostare immediatamente con il dubbio che ti è appena venuto in
mente... come si dice dalle mie parti, prima "butta un po' di sangue" sulla
tastiera.
--
Ciao, AntoGal
*************************************************
Home Page (area programmatori di VolFtp)
http://volftp.mondadori.com/italiani/galletta/
per scaricare un gioco di DAMA ITALIANA
*************************************************

 num = 65 + (Qualcosa(Asc(A$))) Mod 26
Grazie per l'interessamento, Alberto
Auguri

> num = 65 + (Qualcosa(Asc(A$))) Mod 26
Controlla sull'help i seguenti punti:
codifica ASCII (American Standard Code for Information Interchange)
funzione mod
funzione asc
funzione len
funzione chr
istruzione for
e vedrai che il seguente codice è chiaro come il sole :-)
Dim i as Integer, num as Integer
Dim chiave as Integer, StringaDaCriptare as String, StringaCriptata as
String
StringaDaCriptare = "PROVA"
chiave = 123
For i = 1 to Len(StringaDaCriptare)
 num = 65 + (Chiave*Asc(Mid(StringaDaCriptare,i,1))) Mod 26
 StringaCriptata = StringaCriptata & chr(num)
Next i


Ho usato la funzione che cripta XOR e funziona perfettamente.
Per l'uso che ne devo fare per questo lavoro è più che sufficiente.
Ora avrei un'ulteriore problema:
Ho la tabella che contiene i prezzi di acquisto criptati e vorrei
visualizzare un grafico in base a questo dato ma decriptato.
Ora io imposto il RowSource del grafico in questo modo:
    Dim strSQL As String
    strSQL = "SELECT
Componenti.Componente,Componenti.DataValidità,Componenti.PzCmpIn FROM
Componenti WHERE
(((Componenti.Componente)=[Forms]![Componenti]![Componente]))         ORDER
BY Componenti.Componente DESC;"
    Me.Grafico.RowSource = strSQL
E' logico che il valore nel campo PzCmpIn abbia il valore criptato.
Come posso fare ad avere i dati decriptati (senza salvarli decriptati in una
nuova tabella) per fare in modo che il grafico lavori sui valori decriptati
?
Grazie, Alberto

 nuova tabella) per fare in modo che il grafico lavori sui valori
decriptati
Supponiamo che la funzione che cripta il prezzo sia Cript(). Questa deve
essere una funzione pubblica (dichiarata in un modulo) in modo che sia
accessibile anche dalle query. La definizione sarà qualcosa tipo:
Public Function Cript( <argomenti> ) As <formatovoluto>
L'istruzione SQL non leggerà il valore contenuto nel campo, ma otterrà il
valore "in chiaro" dalla funzione. Quindi:
strSQL = "SELECT Componente, DataValidità, Cript(PzCmpIn) FROM
Componenti WHERE Componente=Forms!Componenti!Componente
ORDER BY Componente DESC;"
Credo che a questo punto dovresti aver risolto.
--
Ciao, AntoGal
*************************************************
Home Page (area programmatori di VolFtp)
http://volftp.tin.it/italiani/galletta/


Letto il messaggio,  capito il concetto ma non ancora provato, l'idea sembra
OK.
Credo che a questo punto ti dovrei pagare il cenone.
Ti ringrazio per la tua disponibiltà.
Alberto

Scusami ma ho un'ulteriore problema.
dal momento che il dato che crypto è un numero e lo salvo in un campo testo,
c'è la possibilità di convertirlo in numerico quando lo estraggo dalla
query, altrimenti escono grafici senza significato.
AntoGal <zer...@NOSPAMtiscalinet.it> wrote in message
84dnlu$gtb$1...@lacerta.tiscalinet.it...


 query, altrimenti escono grafici senza significato.
prova ad usare, nell'istruzione SQL, Val(Cript()) invece di Cript().
