Browser-side Android JKS / Keystore password recovery. Deploy anywhere static hosting works โ especially Cloudflare Pages.
| Project | JKS.Recover |
| Page title | Chinese JKSๅฏ็ ๆพๅ / English JKS Recover (switchable; site UI defaults to Chinese) |
| Live site | jks.awads.cc |
| License | GPL-3.0 |
Pure static frontend: JKS integrity checks (SHA-1 + UTF-16BE) run entirely in the browser. Nothing is uploaded. No backend.
- Local only โ the keystore never leaves your browser
- zh / en UI โ language toggle in the header (UI default: Chinese)
- Three recovery modes (smart wordlist first):
- Smart wordlist (permutations + capitalization + numeric suffixes)
- Dictionary recovery
- Brute-force recovery (short passwords only, ~4โ6 chars)
- When found โ click to copy password + one-click export key info (
.txt) - Multi-threaded โ Web Workers +
navigator.hardwareConcurrency - Easy deploy โ Cloudflare Pages / GitHub Pages / Netlify, etc.
Note: Browser CPU is limited. Best for quick checks, partially remembered passwords, and a lightweight always-on tool.
.
โโโ index.html # Main page
โโโ favicon.ico # Favicon
โโโ css/
โ โโโ style.css # Green terminal / geek theme
โโโ js/
โ โโโ app.js # UI, i18n, recovery orchestration
โ โโโ i18n.js # English / Chinese strings
โ โโโ keystore.js # JKS password verification core
โ โโโ worker.js # Web Worker (parallel candidate checks)
โโโ package.json # No-op build script for Cloudflare Pages
โโโ LICENSE # GPL-3.0
โโโ README.md # English
โโโ README_zh-CN.md # Chinese
App code does not need node_modules. package.json only provides a no-op build so Cloudflare Pages has a build command to run.
Serve over HTTP (file:// often breaks Web Workers / ES modules):
# Recommended (Node.js)
npx --yes serve . -l 8080
# Or project script
npm run preview
# If you have Python
python -m http.server 8080Open: http://localhost:8080
- Push this repo to GitHub:
https://github.com/TG-Twilight/JKS.Recover - Open the Cloudflare dashboard (UI language can be Chinese or English)
- Workers & Pages โ Create โ Pages โ Connect to Git
- Select JKS.Recover and use:
| Setting | Value |
|---|---|
| Framework preset | None |
| Build command | npm run build |
| Build output directory | / |
| Root directory | / (repo root; leave default) |
- Save and Deploy
You will get a *.pages.dev URL; bind a custom domain (e.g. jks.awads.cc) in project settings if needed.
This repo is fully static.
npm run builddoes not compile assets โ it only satisfies Pagesโ required build command and prints a log line. You may also useecho okas the build command.
npm install -g wrangler
wrangler login
wrangler pages deploy . --project-name=jks-recoverZip the repo root (must include index.html) and use Direct Upload / Upload assets in Cloudflare Pages.
No Cloudflare Workers or Pages Functions required.
JKS outer integrity check:
SHA-1( UTF-16BE(password) + "Mighty Aphrodite" + keystore_body )
Compare the digest with the last 20 bytes of the file. Cheap enough for bulk tries in the browser.
Released under the GNU General Public License v3.0 (GPL-3.0). Full text: LICENSE.
Redistribution and modification must follow GPL-3.0.
JKS.Recover ยท ็ง้ฃๅกฌไธ ยท ็ง้ฃใฎใจใใ้
Built with Grok Build and Grok 4.5 โ ridiculously fast ๐