Thursday, September 3, 2020

Working with base 64 encoding using Windows CMD



We have a zip file "input1.zip" that we will turn into "output1.txt" using base-64 encoding:

C:\Users\Ashish\Desktop\e5>certutil -encode input1.zip output1.txt 

Input Length = 202
Output Length = 338
CertUtil: -encode command completed successfully. 

Notes about "output1.txt":
1. This is the output file from 'certutil'. 
2. This has character encoding base64.
3. The file encoding is utf-8. 
4. Maximum length of a line is 64.
5. Base64 encoding usually has last few characters as "=". "=" represents padding.
6. The first line in encoded file is: -----BEGIN CERTIFICATE-----
7. Last line in encoded file is: -----END CERTIFICATE-----


C:\Users\Ashish\Desktop\e5>certutil -decode output1.txt input2.zip
Input Length = 338
Output Length = 202
CertUtil: -decode command completed successfully.

Contents of "output1.txt" with header and footer:

-----BEGIN CERTIFICATE-----
UEsDBBQAAAAAAEy8IVE3rlRbAgAAAAIAAAAGAAAAdDEudHh0dDFQSwMEFAAAAAAA
TrwhUY3/XcICAAAAAgAAAAYAAAB0Mi50eHR0MlBLAQIUABQAAAAAAEy8IVE3rlRb
AgAAAAIAAAAGAAAAAAAAAAEAIAAAAAAAAAB0MS50eHRQSwECFAAUAAAAAABOvCFR
jf9dwgIAAAACAAAABgAAAAAAAAABACAAAAAmAAAAdDIudHh0UEsFBgAAAAACAAIA
aAAAAEwAAAAAAA==
-----END CERTIFICATE-----

Contents of "output1.txt" without header and footer:

C:\Users\Ashish\Desktop\e5>type output1.txt | find /V "-----BEGIN CERTIFICATE-----" | find /V "-----END CERTIFICATE-----"

UEsDBBQAAAAAAEy8IVE3rlRbAgAAAAIAAAAGAAAAdDEudHh0dDFQSwMEFAAAAAAA
TrwhUY3/XcICAAAAAgAAAAYAAAB0Mi50eHR0MlBLAQIUABQAAAAAAEy8IVE3rlRb
AgAAAAIAAAAGAAAAAAAAAAEAIAAAAAAAAAB0MS50eHRQSwECFAAUAAAAAABOvCFR
jf9dwgIAAAACAAAABgAAAAAAAAABACAAAAAmAAAAdDIudHh0UEsFBgAAAAACAAIA
aAAAAEwAAAAAAA==

Encoding input file without header and footer:

C:\Users\Ashish\Desktop\e5>certutil -encodehex -f input1.zip output2.txt 0x40000001

Input Length = 202
Output Length = 272
CertUtil: -encodehex command completed successfully.

Contents of output2.txt:

UEsDBBQAAAAAAEy8IVE3rlRbAgAAAAIAAAAGAAAAdDEudHh0dDFQSwMEFAAAAAAATrwhUY3/XcICAAAAAgAAAAYAAAB0Mi50eHR0MlBLAQIUABQAAAAAAEy8IVE3rlRbAgAAAAIAAAAGAAAAAAAAAAEAIAAAAAAAAAB0MS50eHRQSwECFAAUAAAAAABOvCFRjf9dwgIAAAACAAAABgAAAAAAAAABACAAAAAmAAAAdDIudHh0UEsFBgAAAAACAAIAaAAAAEwAAAAAAA==

The limitation of size of input file while encoding using certutil:

Interesting stats about encoding found in webpages:

No comments:

Post a Comment