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

Rate This Project

Login To Rate This Project

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.
  • 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.

    1 user found this review helpful.
  • Read the zeroxia review if you are having decoding problems - there is a bug in the latest version! but the old one is great

    1 user found this review helpful.
  • For me works well. Used with both text data and compressed binaries. Also I have tried two samples from negative review and I could not confirm this issue. Both: online decoder and this tool produced the same result which is correct (for first string result is one char less).

    1 user found this review helpful.
  • The following source file linked on the web site (hxxp://base64.sourceforge.net/) is buggy: hxxp://base64.sourceforge.net/b64.c In the function "decode", the following line will cause decoding to render broken result: if( putc( (int) out[i], outfile ) == 0 ){ Because "putc" will return 0 if "out[i]" is zero, which is normal for binary files (an octect of value 0). But on the project page: hxxp://sourceforge.net/projects/base64/ One can view the source as: hxxp://base64.cvs.sourceforge.net/viewvc/base64/base64/b64.c?revision=1.4&view=markup Which does not check return value of "putc" in the "decode" function. So no short write will occur if all goes well, but "putc" does return EOF on error, and one may argue checking this is required to enhance the program's robustness. :-) (Sorry for the hxxp garbage since sf forbids URLs in comments)

    2 users found this review helpful.
  • the code has something wrong; i tried to decode this 2 string, it gives the same result: Z2lhbmx1Y2E6YXNkYXNk -> expected: gianluca:asdasd -> decoded: gianluca:asdas Z2lhbmx1Y2E6YXNkYXM= -> expected: gianluca:asdas ->decoded: gianluca:asdas

    1 user found this review helpful.
  • I first ran into b64 encoding while scanning through some XML from SAP. Had nothing handy to decode it. That's when I found this little jewel on the SourceForge site. Because it has source code available and it compiled cleanly even on the first try with Visual Studio 2010 only a few minor adaptations were necessary to turn it into the utility I needed. Sometimes, the simpler, the better. Thanks to Bob Trower!

    1 user found this review helpful.