KinG-InFeT.NeT  
  Login or Registrare
~  Home  ~  Downloads  ~  Your Account  ~  Forums  ~ Web-Links ~
Futuri aggiornamenti!!: Come avrete visto il sito � stato defacciato quindi data la poka sicurezza del CMS provveder� a cambiare interamente cms e a sistemare + la sicurezza
MENU - KinG-InFeT.NeT
· Home
· Acces Point Pwd-Default
· Archivio Exploit
· Ascii Tables
· Button Maker
· Cerca
· Codice Fiscale
· Contatta l'Admin
· Crea Avatar
· Dns IP Range
· Downloads
· Dragon Ball Series
· Flash Games
· Forums
· Genera Pass
· Geo-IP
· GuestBook
· HaCkEr-GaMe
· Home Page Flash Creator
· Image Hosting
· Invia una Fake-Mail
· l'HostName sapendo l'IP
· La migliore Distro Linux
· Lista Comandi UNIX
· Lista Utenti
· logo Creator
· MD5-Cracker Online
· MD5/SHA1 Generate
· Messaggi Privati
· MsN Account List
· My Personal Site
· Naviga Anonimo
· News dal Mondo dell'inf.
· Nick Name Maker
· No-Paste
· NuKe-TooLz
· NukeSentinel
· PaPeRs - TuToRiAl
· Proxy List
· Ricerca Satellitare
· Segnala Questo Sito
· Segnalami un Bug
· Smiley Generation
· Statistiche
· Top 10
· Total Search
· Userbar Creator
· WebLinks
· WordList
· XSS New Cheat List
 
Linkaci

Linkaci:

KinG-InFeT.NeT


 
Tool

Accedi al pannello di

Coding/Decoding - Tool


� By KinG-InFeT

 
Ricerca dominio
Registra il tuo Dominio Su Aruba :



 
Ultimi Download
Gli ultimi 10 Download
· 1: Shellr57
· 2: EVEREST Ultimate Edition v5.01.1700 + SERIALS
· 3: The Metasploit Project - Framework
· 4: Tanable Nessus Network Security Scanner
· 5: EtherApe
· 6: ntop - network top
· 7: Dsniff
· 8: Ettercap
· 9: TCPDUMP/LIBPCAP
· 10: Kismet


Top 10 Download
· 1: MsN-CrAsH [45]
· 2: Doork GooGle [44]
· 3: Acunetix Web Vulnerability Scanner 6 [40]
· 4: Virus Maker v 1.0 - NO LAMER! [38]
· 5: Matrix Effect [35]
· 6: Super Scan 4 [34]
· 7: Neo.Trace.Pro.v3.25 [32]
· 8: Cain & Abel [30]
· 9: FaKe-Mail [27]
· 10: ShellC99 [23]
 
Attack Hack Blocks
Questo è l'elenco degli indirizzi IP bloccati da NukeSentinel(tm).

· 79.46.31.224  - Script
· 79.10.29.101  - Script
· 79.54.99.183  - Script
· 72.51.46.230  - Admin
· 151.62.49.23  - Script
· 62.10.78.76  - Script
· 79.49.140.223  - Union
· 79.47.98.214  - Script
· 79.52.183.175  - Script
· 79.41.179.252  - Script
· 78.142.140.194  - Script
· 79.13.4.35  - Script
· 79.53.176.25  - Script
· 79.53.197.134  - Union
· 80.240.220.83  - CLike
· 79.36.13.104  - CLike
· 88.198.36.73  - Script
· 151.33.145.2  - Union
· 79.43.95.254  - Script
· 79.9.19.62  - Script

NukeSentinel™
 
KinG-InFeT.NeT: Forums

KinG-InFeT.NeT - Ufficial Forum :: Leggi il Topic - [C] Base64 encode/decode
 
 FAQFAQ   CercaCerca   Lista degli utentiLista degli utenti   Gruppi utentiGruppi utenti 
 ProfiloProfilo   Messaggi PrivatiMessaggi Privati   LoginLogin 

[C] Base64 encode/decode

 
Nuovo Topic   Rispondi    Indice del forum -> Programmazione C/C++
Precedente :: Successivo  
Autore Messaggio
admin
Founder
Founder


Registrato: Oct 03, 2008
Messaggi: 261

MessaggioInviato: Mer Apr 15, 2009 12:01 am    Oggetto: [C] Base64 encode/decode Rispondi citando

Due funzioncine scritte al volo che possono considerarsi come un porting in C delle base64_encode e base64_decode del PHP per la codifica e la decodifica di stringhe in base64. L'unica vera difficoltà sta nel gestire i dati in base64, codificarli e decodificarli, considerando che sono dati a 6 bit mentre invece il linguaggio gestisce al minimo informazioni da 8 bit, ma con un po' di artifici e operatori bitwise si riesce.


Codice:
/*
 * Two functions that allow you to use base64_encode and base64_decode as the
 * PHP-like functions to encode or decode your string
 *
 * by BlackLight, copyleft 2008
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* base64_encode (char *s)  {
        typedef struct  {
                unsigned char g1:2,
                                    g2:6;
        } tmp1;

        typedef struct  {
                unsigned char g1:4,
                                    g2:4;
        } tmp2;

        typedef struct  {
                unsigned char g1:6,
                                    g2:2;
        } tmp3;


        char chars[] = {
                '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','+','/'
        };

        tmp1 t1;
        tmp2 t2;
        tmp3 t3;
        char val,*enc = (char*) malloc((int) ((4*3)*strlen(s)+2));
        int i;

        memset (&t1,0,sizeof(t1));
        memset (&t2,0,sizeof(t2));
        memset (&t3,0,sizeof(t3));

        for (i=0; i<strlen(s); i++)  {
                if (!(i%3))  {
                        memcpy (&t1, &s[i], 1);
                        val = chars[t1.g2];
                        sprintf (enc,"%s%c",enc,val);
                } else if ((i%3) == 1)  {
                        memcpy (&t2, &s[i], 1);
                        val = chars[(t1.g1 << 4) + t2.g2];
                        sprintf (enc,"%s%c",enc,val);
                } else if ((i%3) == 2)  {
                        memcpy (&t3, &s[i], 1);
                        val = chars[(t2.g1 << 2) + t3.g2];
                        sprintf (enc,"%s%c",enc,val);

                        val = chars[t3.g1];
                        sprintf (enc,"%s%c",enc,val);
                }

                if (i==strlen(s)-1)  {
                        if (!(i%3))
                                sprintf (enc,"%s%c==",enc,chars[t1.g1 << 4]);
                        else if ((i%3) == 1)
                                sprintf (enc,"%s%c=",enc,chars[t2.g1 << 2]);
                }
        }

        return enc;
}

char* base64_decode (char *s)  {
        int i,j;
        char chars[] = {
                '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','+','/'
        };

        char *dec = (char*) malloc(strlen(s));
        int *vals = (int*) malloc(strlen(s)*sizeof(int));

        for (i=0; i<strlen(s) && s[i]!='='; i++)  {
                for (j=0; j<64; j++)  {
                        if (chars[j]==s[i])  {
                                vals[i]=j;
                                break;
                        }
                }
        }

        for (i=0; i<strlen(s) && s[i]!='='; i++)  {
                if (!(i%4))
                        sprintf (dec,"%s%c",dec,(vals[i] << 2) + ((vals[i+1] & 0x30) >> 4));
                else if ((i%4) == 1)
                        sprintf (dec,"%s%c",dec,((vals[i] & 0xf) << 4) + ((vals[i+1] & 0x3c) >> 2));
                else if ((i%4) == 2)
                        sprintf (dec,"%s%c",dec,((vals[i] & 0x3) << 6) + (vals[i+1]));
        }

        return dec;
}

main (int argc, char **argv)  {
        printf ("%s\n", (argv[1]) ? base64_encode(argv[1]) : "Argument expected");
        printf ("%s\n", base64_decode(base64_encode(argv[1])));
}


By BlackLight
Torna in cima
Profilo Messaggio privato Invia email HomePage MSN Messenger
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Indice del forum -> Programmazione C/C++ Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum


CoPyRiGhT 2009 By KinG-InFeT
PhpBB Copiright 2009
Tutti I Diritti Riservati
Forums ©


Valid robots.txt
CoPyRiGhT © 2009/2010 By KinG-InFeT.NeT - Tutti i Diritti Riservati ®

Generazione pagina: 0.08 Secondi

Coder By KinG-InFeT