---
title: "Jaden Vo (@jadenvo259) | Hashnode"
description: "Jaden Vo (@jadenvo259) writes on Hashnode. Read their latest articles and follow their work."
url: "https://hashnode.com/@jadenvo259"
---

@jadenvo259

# Jaden Vo

@jadenvo259 · Joined October 2026

### [Strip GPS and Device Metadata from Photos and Videos Before You Share Them (Python + ffmpeg)](https://jadenvo259.hashnode.dev/strip-gps-and-device-metadata-from-photos-and-videos-before-you-share-them-python-ffmpeg?utm_source=hashnode&utm_medium=feed)

A tested ~100-line script that finds EXIF, GPS, PNG text chunks and QuickTime location tags, removes them without wrecking orientation or re-encoding video, and verifies the result

8 min read · [jadenvo259.hashnode.dev](https://jadenvo259.hashnode.dev/strip-gps-and-device-metadata-from-photos-and-videos-before-you-share-them-python-ffmpeg?utm_source=hashnode&utm_medium=feed)

[21h ago](https://hashnode.com/posts/strip-gps-and-device-metadata-from-photos-and-videos-before-you-share-them-python-ffmpeg/6af3bffc6103eb72ec2a666a)

### [Generate Passwords and Passphrases Correctly in Python: secrets, Modulo Bias and Exact Entropy](https://jadenvo259.hashnode.dev/generate-passwords-and-passphrases-correctly-in-python-secrets-modulo-bias-and-exact-entropy?utm_source=hashnode&utm_medium=feed)

Why random and byte % len are the wrong tools, how to require character classes without skewing the output, and a tested ~100-line stdlib CLI that prints how many bits you actually got

8 min read · [jadenvo259.hashnode.dev](https://jadenvo259.hashnode.dev/generate-passwords-and-passphrases-correctly-in-python-secrets-modulo-bias-and-exact-entropy?utm_source=hashnode&utm_medium=feed)

[1d ago](https://hashnode.com/posts/generate-passwords-and-passphrases-correctly-in-python-secrets-modulo-bias-and-exact-entropy/6af26f84322f75c4fcf71684)

### [Scan HTTP Security Headers in Python and Fail CI When HSTS or CSP Is Missing](https://jadenvo259.hashnode.dev/scan-http-security-headers-in-python-and-fail-ci-when-hsts-or-csp-is-missing?utm_source=hashnode&utm_medium=feed)

A stdlib CLI that checks HSTS, CSP, and X-Content-Type-Options, treats frame protection and Referrer-Policy as recommended, and exits 1 so GitHub Actions can block a bad deploy

7 min read · [jadenvo259.hashnode.dev](https://jadenvo259.hashnode.dev/scan-http-security-headers-in-python-and-fail-ci-when-hsts-or-csp-is-missing?utm_source=hashnode&utm_medium=feed)

[3d ago](https://hashnode.com/posts/scan-http-security-headers-in-python-and-fail-ci-when-hsts-or-csp-is-missing/6aefcd0bcfea6fd9ceb57bfc)

### [Generate Subresource Integrity (SRI) Hashes in Python and Fail CI When a CDN Script Changes](https://jadenvo259.hashnode.dev/generate-subresource-integrity-sri-hashes-in-python-and-fail-ci-when-a-cdn-script-changes?utm_source=hashnode&utm_medium=feed)

A stdlib CLI that hashes local files or HTTPS URLs (sha256 / sha384 / sha512), prints ready-to-paste script/link tags, and exits 1 on verify mismatch — with 7 unit tests

6 min read · [jadenvo259.hashnode.dev](https://jadenvo259.hashnode.dev/generate-subresource-integrity-sri-hashes-in-python-and-fail-ci-when-a-cdn-script-changes?utm_source=hashnode&utm_medium=feed)

[4d ago](https://hashnode.com/posts/generate-subresource-integrity-sri-hashes-in-python-and-fail-ci-when-a-cdn-script-changes/6aee7b9a63d4c0610b865299)

### [Check TLS Certificate Expiry in CI with Python (ssl + socket) and Fail the Build Within N Days](https://jadenvo259.hashnode.dev/check-tls-certificate-expiry-in-ci-with-python-ssl-socket-and-fail-the-build-within-n-days?utm_source=hashnode&utm_medium=feed)

A tested stdlib checker that reads notAfter from any host, warns when a cert expires soon, and returns exit code 1 so GitHub Actions or a cron job can catch it before users do

8 min read · [jadenvo259.hashnode.dev](https://jadenvo259.hashnode.dev/check-tls-certificate-expiry-in-ci-with-python-ssl-socket-and-fail-the-build-within-n-days?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/check-tls-certificate-expiry-in-ci-with-python-ssl-socket-and-fail-the-build-within-n-days/6aed2a431656c5a7982a5824) [5d ago](https://hashnode.com/posts/check-tls-certificate-expiry-in-ci-with-python-ssl-socket-and-fail-the-build-within-n-days/6aed2a431656c5a7982a5824)
