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.

Project Samples

Project Activity

See All Activity >

Categories

Email, Libraries

License

MIT License

Follow b64 -- Base64 Encode/Decode Utility

b64 -- Base64 Encode/Decode Utility Web Site

Other Useful Business Software
Intranet Software To Connect Your Employees | Interact Icon
Intranet Software To Connect Your Employees | Interact

Intranet software built for communicators. Connect your enterprise. Drive engagement. Provide a better employee experience.

Join the revolution in workplace communication with an AI-powered intranet.
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
8
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 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 2 / 5

User Reviews

  • Thank you! I finally was able to recover images from the 1990's which were saved as attachments in a Windows 98 version of Eudora -- the only version left after a series of disasters.
  • simple, straightforward, no bells & whistles to break. I've built & used this on Windows (both cmd.exe & cygwin,) 2 flavors of linux, and OS X. I just compiled v0.94R on OS X El Cap with g++ 7.3.0. Only issue noted: 7 x "warning: conversion from string literal to 'char *' is deprecated". You could do much worse.
  • 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 )"
    1 user found this review helpful.
  • it's good source
    1 user found this review helpful.
  • 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;
    1 user found this review helpful.
Read more reviews >

Additional Project Details

Languages

English

Intended Audience

Advanced End Users, Developers, Security Professionals

Programming Language

C

Related Categories

C Email Software, C Libraries

Registered

2001-08-05