Newsgroup: it.comp.java
Titolo: Crypt - conversione in Java per esperti multilinguaggio (leggermente OT)

Su google ho trovato queste funzioni...  qualuno sarebbe cosi bravo da
convertirmi le funzioni in Java?...
potrebbe fare un favore a anche ad altri in futuro.
Fatelo per tutti quanti in futuro lo cercheranno su google...
Ps. cose' VB??
Grazie :)
 ' Crypt Sample by Matt Hart - 
vbh...@matthart.com
' 
http://matthart.com
'
' I've updated this sample with better encryption.
' Before, my simple XOR encryption could actually
' show the password somewhere in the encrypted
' file (using the file encryption).  This method
' is more secure.  It builds a "key" from the password
' to encrypt and decrypt, rather than using the actual
' password itself for the algorithm.
'
' Note that if you use Crypt$ to decrypt a file's data
' with a single pass, you must uncomment the line
' in the loop, since the initial encryption would have
' been broken into 4096 byte chunks.
Function EncryptINI$(Strg$, Password$)
   Dim b$, S$, i As Long, j As Long
   Dim A1 As Long, A2 As Long, A3 As Long, P$
   j = 1
   For i = 1 To Len(Password$)
     P$ = P$ & Asc(Mid$(Password$, i, 1))
   Next
   For i = 1 To Len(Strg$)
     A1 = Asc(Mid$(P$, j, 1))
     j = j + 1: If j > Len(P$) Then j = 1
     A2 = Asc(Mid$(Strg$, i, 1))
     A3 = A1 Xor A2
     b$ = Hex$(A3)
     If Len(b$) < 2 Then b$ = "0" + b$
     S$ = S$ + b$
   Next
   EncryptINI$ = S$
End Function
e decriptare ..................
Function DecryptINI$(Strg$, Password$)
   Dim b$, S$, i As Long, j As Long
   Dim A1 As Long, A2 As Long, A3 As Long, P$
   j = 1
   For i = 1 To Len(Password$)
     P$ = P$ & Asc(Mid$(Password$, i, 1))
   Next
   For i = 1 To Len(Strg$) Step 2
     A1 = Asc(Mid$(P$, j, 1))
     j = j + 1: If j > Len(P$) Then j = 1
     b$ = Mid$(Strg$, i, 2)
     A3 = Val("&H" + b$)
     A2 = A1 Xor A3
     S$ = S$ + Chr$(A2)
   Next
   DecryptINI$ = S$
End Function
bye, Luys

 Ps. cose' VB??
Visual Basic.
Davide

 Davide

 decifrare:))))))))
Beh dipende da cosa devi farci... ora i testi  che vorrei cryptare sono
completamente in chiaro... non sono segreti di stato:)... Poi nel mio caso
andrebbe benissimo in quanto genererei una password al volo ogni volta...
chi volesse decifrarla perderebbe tempo per avere cose che troverebbe in
giro per il web  con meno fatica... e la volta successiva dovrebbe fare
tutto da capo! ;-)
Vebbe' ho capito.. faro' da solo anche stavolta... un po' di VB non mi fara'
male!
Ciao

 convertirmi le funzioni in Java?...
L'ultimo programma che ho fatto in basic risale alla notte dei tempi (almeno
una dozzina di anni fa) e i miei ricordi sono alquanto confusi. Ciň
premesso, questa istruzione:
    For i = 1 To Len(Password$)
        P$ = P$ & Asc(Mid$(Password$, i, 1))
   Next
mi sembra del tutto inutile, perché non fa altro che copiare Password$ in
P$.
A parte ciň, le due funzioni dovrebbero essere:
String encryptIni(String Strg, String Password) {
   String b, S = "";
   int i, j = 0, A1, A2, A3;
   for (i = 0; i < Strg.length(); i++) {
      A1 = (int)Password.charAt(j);
      j = ++j % Password.length();
      A2 = (int)Strg.charAt(i);
      A3 = A1 ^ A2;
      b = (A3 > 15 ? "" : "0") + Integer.toHexString(A3);
      S += b;
   }
   return S;
}
String decryptIni(String Strg, String Password) {
   String b, S = "";
   int i, j = 0, A1, A2, A3;
   for (i = 0; i < Strg.length(); i += 2) {
      A1 = (int)Password.charAt(j);
      j = ++j % Password.length();
      b = Strg.substring(i, i + 2);
      A3 = Integer.parseInt(b, 16);
      A2 = A1 ^ A3;
      S += (char)A2;
   }
   return S;
}
Maurizio.


ti sono molto grato... stavo cercando di convertirlo io... alcune cose erano
intuitive  anche per me che il VB non l'avevo mai visto... mi mancavano solo
5 righe tra cui quella. Ma sei sicuro che sia inutile?... Mi sembra
strano!... Cmq l'ho postato sul NG VB... vediamo gli "esperti" cosa dicono
:-)
Grazie
Oxy

 > premesso, questa istruzione:
ad ogni modo FUNZIONA!!!!!!!!!
Grazie 1000, davvero! :)
Ora devo cercare un algoritmo semplice ( tipo questo ) per comprimere senza
perdere dati.
Oxy

 Ma sei sicuro che sia inutile?...
La premessa stava a significare che tanta certezza non c'č :-)
L'operatore & in basic serve per concatenare due stringhe. Forse
l'istruzione potrebbe essere tradotta in:
    P += (int) Password.charAt(i);
e questo potrebbe anche essere piů plausibile. Anzi, ora che mi ci fai
pensare, propendo per quest'ultima.
Perň, tirando le somme, non mi sembra che la sostanza cambi molto.
Maurizio.