b64 -- Base64 Encode/Decode Utility

4.3 Stars (9)
34 Downloads (This Week)
Last Update:
  Browse Code CVS Repository

Screenshots

Description

base64 RFC1113 Vanilla ANSI-C Code for a portable stand-alone file encode/decode utility. In 2001, I asked people to 'Help me break it!' Since then, 10+years later, the code remains unbroken and is in wide production use world-wide. It has been ported to all major architectures and been used as a template for ports to different computer and human languages. This is very mature and stable code.

Although this comes from a project that was constrained by export controls and is used in secure systems, it is not security code per-se. I have therefore altered the 'Export Controls' category.

b64 -- Base64 Encode/Decode Utility Web Site

Categories

Email, Libraries

License

MIT License

KEEP ME UPDATED

User Ratings

★★★★★
★★★★
★★★
★★
6
2
0
0
1
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 2 / 5
Write a Review

User Reviews

  • rachidc
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    works great only a minor bug if out[i] contains 0x00 it will not write to outfile and fail. In order to fix this, change "if( putc( (int)(out[i]), outfile ) == 0 )" to "if( putc( (int)(out[i]), outfile ) == EOF )"

    Posted 06/27/2015
  • jihadw
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    it's good source

    Posted 01/24/2015
  • jorgeventura
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    I had to apply some changes to work on Linux and Windows: The '-' and '+' means line removed and line included. 1. change for unix files. if( blocksout > 0 ) { - fprintf( outfile, "\r\n" ); + fprintf( outfile, "\n" ); } 2. change v = getc( infile ); - if( v != EOF ) { + if( feof( infile ) == 0) { v = ((v < 43 || v > 122) ? 0 : (int) cd64[ v - 43 ]); 3. change in the break position perror( b64_message( B64_FILE_IO_ERROR ) ); retcode = B64_FILE_IO_ERROR; + break; } - break;

    Posted 08/07/2014
  • kl7drice
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Ran into problems with decodes as others have mentioned. Appears the author tried to fix a minor bug recently (2014) and introduced a new one. In the decode() function, change: if( putc((int)out[i]) !=0){ if( ferror(outfile)!=0) { ...} break; } to if( putc((int)out[i]) !=0){ if( ferror(outfile)!=0) { ... ; break; } } then it works fine. I was able to use it to verify a bug in yet another base64 decoder that was corrupting science data.

    Posted 05/09/2014
  • stev10
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Read the zeroxia review if you are having decoding problems - there is a bug in the latest version! but the old one is great

    Posted 01/20/2014
Read more reviews

Additional Project Details

Languages

English

Intended Audience

Advanced End Users, Developers, Security Professionals

Programming Language

C

Registered

2001-08-05
Screenshots can attract more users to your project.
Features can attract more users to your project.