v2.8.3 has been in development for a few weeks and I was about to start thinking about getting it compiled and released, but then one user contacted me with quite a unique and good idea that I hadn’t thought of before…Base64 decoding.

As you may know, Base64 encoding can be used to convert files like PDF e-mail attachments and picture files into a form of non-binary data that is text based. Base64 is basically groups of 4 text characters that typically ends with an ‘=’ or ‘==’ character. Once decoded, the original file can be used as normal.

So a Base64 encoded file is, effectively, entirely different to is Base64 decoded brother. In essence, you have two files to deal with. So when computing a hash of a Base64 file, do you hash it in it’s encoded form, or its decoded form? Well this is where the idea from the user came in – build into QuickHash a method of computing the decoded version but without having to have both the encoded and decoded files together.

So using a Base64 library and specifically the Base64DecodingStream and Base64DecodingStream, QuickHash v2.8.3 will be able to compute hashes of Base64 files either individually (one file at a time) or an entire folder of Base64 files. In both instances, it will generate a hash of the encoded and decoded versions, without you (the user) having to supply QuickHash with both versions. All it needs is the encoded version.

As a little extra, and because I’m generally just a decent guy, I have also added a little button to allow you to select a folder and have all the Base64 files inside it decoded sand saved in the decoded state. So your input folder will have in it, after decoding, the original encoded files and the newly decoded versions. All the user then has to do is adjust the file extension of whatever file it is. So if it’s a PDF file, he will need to add ‘pdf’ at the end, and the same for JPEG file or BMP file (*.jpg and *.bmp etc). At least, Windows users will. Linux users probably won’t have that issue as the operating system will know what file type it is from the signature bytes.

So, proof if proof were needed that it is good to ask! I may not always be able to help or say yes, but if I think the idea has merit and will be sufficiently helpful to enough people, I’ll add it, if I can.