Cryptography RSA in JavaScript Part 2: The JWT Is Where You'll Actually Meet It Most JavaScript developers never call an RSA function directly. They verify an RS256 token, and two classic attacks turn that into an authentication bypass — both demonstrated here, both fixed by one line.
Cryptography RSA Signatures: The Version in Most Tutorials Is Forgeable Signing is encryption with the keys swapped, and that symmetry is exactly what makes the naive implementation breakable. Here are two forgeries executed against textbook RSA signatures, and what PSS does that hashing alone cannot.
Cryptography RSA in JavaScript: Your Numbers Are Too Small JavaScript cannot do RSA with numbers. Not slowly, not imprecisely — at all. The largest modulus a Number can handle is 26 bits and RSA needs 2048, and the failure is silent. Here's the implementation that works and why.
Cryptography Featured RSA Part 3: Your Correct Implementation Still Leaks the Key Key generation works, encryption round-trips, the math is provably right — and an attacker can still recover the private key by timing your decryptions. Here are both defenses, measured, with what they actually cost.
Cryptography Featured RSA Part 2: Real Primes, Real Text, and a Bug That Eats Your Data Part 1 used 15-bit primes and only encrypted integers. Making it usable means generating 1024-bit primes and chunking bytes — and the standard way to do the second one silently destroys data on inputs the tests never cover.
Cryptography Featured RSA in Python From Scratch: The Math, the Code, and What Breaks It Every HTTPS connection you have ever made runs on a 1978 paper. You can build the core of it in about fifty lines of Python — and then see exactly why those fifty lines would get you destroyed in production.