Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
Developer's toolbox: hashes, HMAC, CRC, ciphers, IP/subnet, time, number and string conversions.
Everything runs locally in the popup — nothing is sent anywhere.

Standalone version for other browsers (the same popup, deployed from `master` by GitHub Actions):
https://s12v.github.io/hasher/
Standalone version: https://s12v.github.io/hasher/

## Privacy

Expand All @@ -31,16 +30,17 @@ Chrome Web Store listing is being republished. Until then, load it unpacked:
* <b>HMAC:</b> SHA-256, SHA-1, SHA-512, SHA-384, MD5 (base64 hints for SHA-256/512)
* <b>CRC:</b> CRC-32, CRC-32C, CRC-16/MODBUS, CRC-16/CCITT-FALSE, CRC-16/XMODEM, CRC-8, CRC-64/XZ, Adler-32 — one parametrised implementation checked against the CRC catalogue
* <b>Password:</b> passphrases from the EFF large wordlist (words, separator, digits, capitalize) and passwords (length, symbols) with the entropy estimate — a port of [ppgen](https://github.com/s12v/ppgen); random keys of N bytes as hex and Base64 (`openssl rand`)
* <b>UUID:</b> UUID v4, UUID v7, ULID
* <b>UUID:</b> generate v4, v7, ULID; inspect a pasted UUID / ULID (version, variant, embedded time); UUID v5 from a name (DNS and URL namespaces)
* <b>Cipher:</b> AES-256-CBC with a passphrase, byte-compatible with `openssl enc -aes-256-cbc -pbkdf2 -a` (PBKDF2-SHA256, 10000 iterations) and with the legacy `-md md5` format; decrypt detects which
* <b>URL:</b> scheme, host (IDN shown in Unicode), port, path, decoded query parameters, fragment, credentials, origin, normalized form
* <b>IP:</b> IPv4 and IPv6 — canonical form (RFC 5952), decimal, hex, binary, PTR, address type (private, link-local, ULA, documentation…); for a prefix: network, netmask / wildcard, first / last host, broadcast, hosts
* <b>Time:</b> Unix time (s or ms), ISO 8601, RFC-1123 or `2019-02-27 09:36:55` in → Unix s / ms, ISO 8601, RFC-1123, DATETIME UTC / local out
* <b>Num:</b> any base in (decimal, `0x`, `0b`, `0o`, Roman, floating point), the others out — decimal, hex, octal, binary, Roman, bits, size in KiB / kB, IEEE-754 double / single; arbitrary size (BigInt)
* <b>Strings:</b> length (chars / UTF-8 bytes / words / lines), UTF-8 ↔ Hex, UTF-16 BE / LE ↔ Hex, code points, case conversions (UPPER, lower, Title, Sentence, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, slug)
* <b>JSON:</b> pretty-print and minify (optionally with sorted keys), quote as a JSON string (a pasted string literal is unquoted on the spot), syntax errors with position
* <b>Diff:</b> compare two texts side by side, line by line, with changed characters highlighted; ignore whitespace / case
* <b>Encode:</b> Base64 / Base64url, Base32, Base58 — encode and decode (binary output shown as hex), encodeURI(), encodeURIComponent(), HTML special chars, ROT13
* <b>JWT:</b> decode, claims with expiry as local time, verify HS256/384/512 with a secret
* <b>JWT:</b> decode, claims with expiry as local time; verify HS* with a secret, RS* / PS* / ES* / EdDSA with a PEM or JWK public key (WebCrypto); sign a JSON payload with HS256
* <b>Cron:</b> schedule builder (every N minutes, hourly, daily, weekly with weekdays, monthly, yearly) ↔ crontab expression, plain English and the next 5 run times

Usage: enter text and click on the result — it is copied to clipboard.
Expand All @@ -64,8 +64,8 @@ directory over HTTP (`python3 -m http.server`) — `file://` blocks the wordlist
## Release

1. Set the same new version in `manifest.json` and `package.json`, commit.
2. Tag and push: `git tag v1.6.0 && git push origin master v1.6.0`.
3. The Release workflow runs the tests, builds `hasher-1.6.0.zip` (`npm run build` does the same locally into `dist/`)
2. Tag and push: `git tag v2.2.0 && git push origin master v2.2.0`.
3. The Release workflow runs the tests, builds `hasher-2.2.0.zip` (`npm run build` does the same locally into `dist/`)
and attaches it to a GitHub Release.
4. Upload the zip in the [Chrome Web Store developer dashboard](https://chrome.google.com/webstore/devconsole).

Expand Down
Loading
Loading