Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    cosa e' la codifica base 64 ?

    Ciao,

    dovrei utilizzare la codifica base 64 per criptare dei dati per il pagamento con carta di credito. Sapete dove posso trovare informazioni e sopratutto un componente / altro per effettuare questa codifica ?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    La codifica in base 64 è la rappresentazione dei dati avente come sistema di misura dei valori che vanno da 0 a 63. Normalmate usi la base 10 (da 0 a 9) . Il computer lavora in base 2 (da 0 a 1).

    La base 64 non è criptazione vera e propria nel senso che non c'è alcuna chiave di criptazione, ma è solo una rapprasentazione dei dati in una base differenze.


    Insomma , questa è la classe per portare una stringa in Base64 e viceversa.


    codice:
    <%
    Class cBase64
    	Private Base64Chars
    	Private arBase64Chars
    	Private Length
    	
    	Private Sub Class_Initialize()
    		Base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    		arBase64Chars = Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/")
    	End Sub
    
    	Public Function Decode(strIn)
    		Dim w1, w2, w3, w4, n, strOut
    		Set strOut = new cStringBuilder
    		Length = Len(strIn) 
    		For n = 1 To Length Step 4
    			w1 = mimedecode(Mid(strIn,n,1))
    			w2 = mimedecode(Mid(strIn,n+1,1))
    			w3 = mimedecode(Mid(strIn,n+2,1))
    			w4 = mimedecode(Mid(strIn,n+3,1))
    			If w2 >= 0 Then strOut.Write Chr(((w1 * 4 + (w2 \ 16)) And 255))
    			If w3 >= 0 Then strOut.Write Chr(((w2 * 16 + (w3 \ 4)) And 255))
    			If w4 >= 0 Then strOut.Write Chr(((w3 * 64 + w4) And 255))
    		Next
    		Decode = strOut.Value
    		Set strOut = Nothing
    	End Function
    	
    	Public Function Encode(strIn)
    		Dim c1, c2, c3, w3, w4, n , strOut , chr0 ,ar
    		Set strOut = new cStringBuilder
    		chr0 = Chr(0)
    		Length = Len(strIn) 
    		For n = 1 To Length  Step 3		
    			c1 = Asc(Mid(strIn, n, 1))
    			c2 = Asc(Mid(strIn, n + 1, 1) + chr0)
    			c3 = Asc(Mid(strIn, n + 2, 1) + chr0)
    			If Length  >= n + 1 Then 
    				w3 = (c2 And 15) * 4 + (c3 \ 64)
    			Else 
    				w3 = -1
    			End If
    			If Length >= n + 2 Then 
    				w4 = c3 And 63 
    			Else 
    				w4 = -1
    			End If
    			strOut.Write mimeencode(c1 \ 4) + mimeencode((c1 And 3) * 16 + (c2 \ 16)) + mimeencode(w3) + mimeencode(w4)
    		Next
    		on error goto 0
    		Encode = strOut.Value
    		Set strOut = Nothing
    	End Function
    	
    	Private Function mimeencode(intIn)
    		if intIn>=0 then 
    			mimeencode = arBase64Chars(intIn) 
    		else
    			mimeencode = ""
    		End if
    	End Function
    
    	Private Function mimedecode(strIn)
    		If strIn = "" Then 
    			mimedecode = -1 
    		Else
    			mimedecode = InStr(Base64Chars, strIn) - 1
    		End If
    	End Function
    	
    End Class
    %>
    codice:
    Set Base64 = new cBase64
    s64 = Base64.Encode("CIAO")
    Response.Write s64 & "
    "
    Response.Write Base64.Decode(s64) & "
    "
    Set Base 64 = Nothing

  3. #3

    grazie

    grazie mille !

  4. #4

    un errorino

    Microsoft VBScript runtime error '800a01fa'

    Class not defined: 'cStringBuilder'

    /base64codice.asp, line 41


    non trova la classe 'cStringBuilder'

  5. #5
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Ops:
    codice:
    Class cStringBuilder
    	Private Count
    	Private arLength
    	Private arStrings()
    	
    	Public Increment
    	
    	Private Sub Class_Initialize()
    		Clear()
    	End Sub
    
    	Public Function Clear()
    		Count 			= 0
    		Increment		= 1000
    		Redim arStrings(0)
    		arLength 		= 1
    	End Function
    
    	
    	Public Sub Write(value)
    		if Count=arLength then 
    			arLength=Count+Increment
    			Redim Preserve arStrings(arLength)
    		end if
    		arStrings(Count)=value
    		Count=Count+1
    	End Sub
    	
    	
    	Public Property Let Value(strValue)
    		Clear()
    		Write strValue
    	End Property
    
    	Public default Property Get Value()
    		Value = Join(arStrings,"")
    	End Property
    	
    	Private Sub Class_Terminate()
    		Erase arStrings
    	End Sub
    
    End Class

  6. #6

    info

    ok, ora funziona.

    volevo sapere se e' corretto che, oltre alle lettere in minuscolo e maiuscolo, ci sia anche lo spazio nella variabile :

    codice:
    Base64Chars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghij.......+/"

  7. #7
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Si, ho apportato diverse modifica ad una classe che ho trovato su internet per velocizzare il processo di conversione. Lo spazio è corretto

  8. #8

    ok

    ok ti ringrazio

  9. #9
    il Base64 torna utile quando si utilizzano dei web service.

    Es.
    tu vuoi fare l'upload di un'immagine attraverso un web service. Quindi mandi in formato stringa Base64 i dati binari dell'immagine.

    Poi il webService fa una semplice conversione da Base64 a binary o viceversa. E' molto usato in .NET

  10. #10
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Correggo. E' molto usato in xml e per il trasporto dati da sistemi operaztivi diversi. Base64 si usa nei formati email, mht ed altri ancora. Non farne una prerogativa net. E sopratutto , i web service non sono così legati al base64 (tu parli di un certo tipo di web service)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.