Cmq non risolvo il mio problema perché ho delle difficoltà da una codifica all'altra.
Vi spiego cosa sto facendo.
Sto scrivendo un esempio per l'utilizzo di una classe per Il resto del pinguino. Ne approfitto per abbracciare anche la crittografia utilizzando la mia classe RC4 che trovate anche in area download.
Per far ciò creo un piccolo programma in cui dichiaro 2 stringhe, il testo da elaborare e la chiave, e le passo alla mia classe. Dalla classe ottengo una stringa che, ripassata alla classe RC4 con la stessa chiave, mi dovrebbe rendere la stringa originaria.
Il problema è appunto la conversione, perché la stringa di origine, a seconda dei caratteri, è codificata UTF-8 o ISO (per capirsi, con "Prova" Gambas usa l'ISO, se metto "Prova@#ç" Gambas usa l'UTF) per cui ho dei problemi già in partenza con la funzione Conv() perché se cerco di convertire una stringa UTF-8 dicendogli che è ISO mi dà errore.
Tralasciamo per ora questo problema e consideriamo che gli ho passato una stringa 'buona'. La classe crittografica scompone la stringa in un vettore di byte per poterci operare sopra e restituisce un vettore di byte cifrato.
Il problema nasce ora: riconvertendolo in stringa, ottengo i risultati più strani perché se il codice ASCII è maggiore di 128 allora il carattere mi viene salvato in UTF-8 (quindi con 2 caratteri nella stringa finale), se l'ASCI è inferiore allora viene usato 1 solo carattere.
Alla fine la stringa ha una lunghezza ed una composizione "assurda", tale che ripassandola dalla classe RC4 non riottengo il testo originario perché non torna più nulla.
So che è complicato ma non so come spiegarlo meglio. Allego "Mario" per farvi capire cosa sto cercando di fare. Cliccate sul pulsante RC4 (contiene anche l'esempio della cancellazione delle tab che aveva chiesto Ceskho tempo fa... ignorate quella porzione di codice XD).