Guides
Everything that tends to go wrong when you move an image through Base64 — and how to fix it.
-
MIFARE Classic Sector Dump: What the Hex Actually Says
2026-11-02 · 1118 words
Sixteen bytes per block, one trailer per sector, and a UID stored backwards. What a dump really contains, and the three parts people read wrong.
-
Duplicate URLs: Why One Page Gets Many Addresses
2026-11-02 · 994 words
Trailing slashes, percent-encoding case, default ports and query order. Six differences that split one page into six addresses, and how to collapse them.
-
Why Card Number Formats Differ: Hex, Decimal, Byte Order
2026-09-30 · 1828 words
One reader prints 04A2243A, another prints 975479300 — and both are right. The four forms a card UID can take, and the step that quietly invents a number.
-
Percent-Encoding: The Reserved Characters That Break URLs
2026-09-30 · 1552 words
Reserved means the character has a job in that position. Leave it unencoded in a value and it splits your data into parameters or fragments, with no error.
-
URL Encoding vs Base64: When to Use Which
2026-09-30 · 1276 words
Both get described as making text safe, and they solve different problems. Pick the wrong one and the data is corrupted quietly, with no error to follow.
-
Wiegand 26 vs 34 Bit Format: The Facility Code Split
2026-09-30 · 1750 words
Both formats carry a facility code and a card number, but the boundary sits at a different bit. That is why one credential reads as two different people.
-
Base64 Image Not Showing? Six Checks, Cheapest First
2026-09-17 · 1487 words
Separate a bad string from a bad prefix from bytes that were never an image. Includes the two causes almost nobody checks.
-
Base64 Line Breaks and Padding: Why They Break Decoders
2026-09-17 · 1036 words
MIME wraps Base64 at 76 characters and padding rounds it to a multiple of four. What both rules are for, and how to handle strings that break them.
-
Base64 Overhead: Why Data URIs Make Files 33% Bigger
2026-09-17 · 1074 words
The 4-for-3 arithmetic behind Base64, why gzip cannot recover it for images, and where the break-even point for inlining an asset actually sits.
-
Base64 vs Hex, Base32 and ASCII85: Encodings Compared
2026-09-17 · 1175 words
Four ways to turn bytes into text, with different alphabets, different overhead and different failure modes. Which one belongs in which situation.
-
Data URI vs Blob URL: Which Should You Use for Images?
2026-09-17 · 1513 words
Both display an image without a server. One costs 33% extra bytes and is portable; the other is nearly free and dies with the page. How to choose.
-
Decode a Base64 Image in Python, Node.js and the Browser
2026-09-17 · 1007 words
The same string can decode cleanly in one runtime and fail in another. What each does with padding, newlines and junk — plus how to verify the bytes.
-
Image File Signatures: PNG, JPEG, WebP, AVIF and More
2026-09-17 · 993 words
Extensions and declared MIME types both lie; the first bytes never do. The signature table a decoder uses, and how to read it in JavaScript.
-
How to Convert an Image to Base64 in JavaScript (3 Ways)
2026-09-17 · 1003 words
FileReader, canvas and raw ArrayBuffer each produce a different string — and one of them silently re-encodes your image. Working code for all three.
-
URL-Safe Base64 vs Standard: How to Tell Them Apart
2026-09-17 · 1041 words
JWT, cookies and query parameters use a different alphabet: - and _ instead of + and /. What breaks, and the two-character test that settles it.
-
What Is a Base64 Data URI — and Why Some Images Won't Decode
2026-09-17 · 1295 words
A data URI is an image stored inside a URL. Here is what the format actually allows, and the three different bugs that all look like "it won't decode".