Skip to main content

FontU!

Simple Python script to:

  1. shuffle characters of the text content of your HTML,
  2. accordingly (in reverse order) shuffle symbols in the font,
  3. add the font into your HTML,
  4. congratz, text contents of your HTML are machine unreadable, yet human can read it just fine.

Problems

Text encrypted by FontU will not be readable by screen readers. We plan to investigate and fix this problem. Maybe we could manipulate the vocal files accordingly? If you have experience with screen readers, please let us know. We deeply appreciate your feedback and ideas.

Example commands

For simple one-step encoding, run do subcommand and spefcify input HTML with an input font: python main.py do -i in_html/gajdosik-org_sample.html -f in_fonts/Roboto/Roboto-VariableFont_wdth,wght.ttf

Or alternatively first create a shuffled font and coresponding keymap holding about exact shuffle order: python main.py wys -f in_fonts/Roboto/Roboto-VariableFont_wdth,wght.ttf

Then call wtg to use the keymap to encode HTML file and add decoding font to it automatically: python main.py wtg -i in_html/gajdosik-org_sample.html -k private/fontu.json

Credits

Huge thanks to all authors and contributors of fontTools.

Thanks to MetroByte, their script getfontchars.py served me a as nice introductory example into fontTools.

Metadata

Release files for fontu 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for fontu 0.0.3
File Interpreter ABI Platform
fontu-0.0.3-py3-none-any.whl Python 3 none any Details

Release files / fontu-0.0.3-py3-none-any.whl

Download URL fontu-0.0.3-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4d068c0c5cc5d51f7c6e64bc34df571deeb132a2956a8d28d42079ed21ce2da
BLAKE2b-256 checksum
How to use checksums
a05949e0b238b0d9773029f70d2b904af43c067732dc38474b1815c182969e75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.7

Security for fontu 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page