{"id":29953746,"url":"https://github.com/bocaletto-luca/cryptolinkshare","last_synced_at":"2026-03-14T16:34:14.756Z","repository":{"id":305391958,"uuid":"1022768834","full_name":"bocaletto-luca/CryptoLinkShare","owner":"bocaletto-luca","description":"CryptoLinkShare is a static, client-side web app that encrypts URLs via AES-256, generates opaque shareable links and QR codes, and persists mappings in localStorage. Easily export or import your mapping as JSON. No server required—pure HTML, CSS, and JavaScript. By Bocaletto Luca","archived":false,"fork":false,"pushed_at":"2025-07-19T19:46:17.000Z","size":27,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-19T22:30:38.028Z","etag":null,"topics":["aes-256","bocaletto-luca","client-side","css3","decryption","encryption","html5","javascript","link-sharing","no-backend","open-source","qr-code","url-encryption","webapp"],"latest_commit_sha":null,"homepage":"https://bocaletto-luca.github.io/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bocaletto-luca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-19T19:31:53.000Z","updated_at":"2025-07-19T21:15:49.000Z","dependencies_parsed_at":"2025-07-19T22:30:43.526Z","dependency_job_id":"f89618c8-a0d5-4437-a28b-5f6e0b9fd6c5","html_url":"https://github.com/bocaletto-luca/CryptoLinkShare","commit_stats":null,"previous_names":["bocaletto-luca/cryptolinkshare"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bocaletto-luca/CryptoLinkShare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FCryptoLinkShare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FCryptoLinkShare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FCryptoLinkShare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FCryptoLinkShare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bocaletto-luca","download_url":"https://codeload.github.com/bocaletto-luca/CryptoLinkShare/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FCryptoLinkShare/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268563869,"owners_count":24270662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes-256","bocaletto-luca","client-side","css3","decryption","encryption","html5","javascript","link-sharing","no-backend","open-source","qr-code","url-encryption","webapp"],"created_at":"2025-08-03T15:11:05.012Z","updated_at":"2026-03-14T16:34:14.748Z","avatar_url":"https://github.com/bocaletto-luca.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crypto Link Share | WebApp\n\nCryptoLinkShare is a static, client-side web app that encrypts URLs via AES-256, generates opaque shareable links and QR codes, and persists mappings in localStorage. Easily export or import your mapping as JSON. No server required—pure HTML, CSS, and JavaScript.\n\n[![Try Demo](https://img.shields.io/badge/Try%20Demo-Online-blue?style=for-the-badge)](https://bocaletto-luca.github.io/CryptoLinkShare/index.html)\n\n---\n\n## Table of Contents\n\n- [Features](#features)  \n- [Demo](#demo)  \n- [Getting Started](#getting-started)  \n- [Usage](#usage)  \n- [How It Works](#how-it-works)  \n- [File Structure](#file-structure)  \n- [Customization](#customization)  \n- [Contributing](#contributing)  \n- [License](#license)  \n- [Author](#author)  \n\n---\n\n## Features\n\n- AES-256 client-side encryption (via CryptoJS)  \n- Opaque shareable links (`#/e/{token}`)  \n- Live QR code generation (via QRCode.js)  \n- Persistent mapping in `localStorage`  \n- Export/import mapping as `mapping.json`  \n- Full static implementation: **HTML**, **CSS**, **JavaScript**, **JSON**  \n- No backend required—works on any static host or local HTTP server  \n\n---\n\n## Demo\n\nOpen the live demo on GitHub Pages:  \nhttps://bocaletto-luca.github.io/CryptoLinkShare/index.html\n\n---\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine.\n\n### Prerequisites\n\nA modern browser and a simple static HTTP server. For example:\n\n- **Python 3**  \n  ```bash\n  python3 -m http.server 8000\n  ```\n- **Node.js**  \n  ```bash\n  npx http-server . -p 8000\n  ```\n\n### Installation\n\n1. Clone this repository:\n\n   ```bash\n   git clone https://github.com/bocaletto-luca/CryptoLinkShare.git\n   cd CryptoLinkShare\n   ```\n\n2. Start your HTTP server in this directory:\n\n   ```bash\n   python3 -m http.server 8000\n   ```\n\n3. Open your browser at \u003chttp://localhost:8000\u003e and enjoy!\n\n---\n\n## Usage\n\n1. **Generate Secure Link**  \n   - Paste any URL into the input field and click **Generate Secure Link**.  \n   - The page displays:\n     - A shareable encrypted link (`#/e/{token}`)  \n     - A QR code you can scan  \n     - A **Copy** button to copy the link to your clipboard  \n\n2. **Share**  \n   - Send the encrypted link or QR code to recipients.  \n   - When they visit the link on the same page, they will be automatically redirected.\n\n3. **Export Mapping**  \n   - Click **Export Mapping** to download `mapping.json`, containing all `{token: originalURL}` pairs.\n\n4. **Import Mapping**  \n   - Click **Import Mapping** and select a previously exported `mapping.json` to restore your mapping.\n\n---\n\n## How It Works\n\n- **Encryption**: Uses [CryptoJS](https://github.com/brix/crypto-js) AES-256 to encrypt URLs into opaque tokens.  \n- **Decryption \u0026 Redirect**: When visiting `index.html#/e/{token}`, the app decrypts the token and performs a client-side redirect.  \n- **QR Codes**: Utilizes [QRCode.js](https://github.com/davidshimjs/qrcodejs) to render a scannable QR code for each encrypted link.  \n- **Persistence**: Stores the token-to-URL mapping in `localStorage` for quick recall; export/import provides backup and portability.  \n- **Client-Side Only**: All logic lives in a single HTML file—no server-side dependencies or databases.\n\n---\n\n## File Structure\n\n```\nCryptoLinkShare/\n├── index.html      # Single-page app with embedded HTML, CSS, JS\n├── mapping.json    # Optional export/import file for token→URL mapping\n└── README.md       # This file\n```\n\n---\n\n## Customization\n\n- **Passphrase**: Edit the `SECRET` constant in the inline `\u003cscript\u003e` of `index.html`.  \n- **Styling**: Modify the `\u003cstyle\u003e` block in `index.html` or convert it to an external `style.css`.  \n- **Routing Prefix**: Change the `#/e/` prefix in the script if preferred.  \n\n---\n\n## Contributing\n\nContributions are welcome! To propose improvements or report issues:\n\n1. Fork the repository  \n2. Create a new branch (`git checkout -b feature/my-feature`)  \n3. Commit your changes (`git commit -m \"Add my feature\"`)  \n4. Push to your fork (`git push origin feature/my-feature`)  \n5. Open a Pull Request  \n\nPlease ensure your code adheres to the existing style and is well-tested.\n\n---\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## Author\n\n**Bocaletto Luca**  \n- GitHub: [@bocaletto-luca](https://github.com/bocaletto-luca)  \n- Repository: [CryptoLinkShare](https://github.com/bocaletto-luca/CryptoLinkShare)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbocaletto-luca%2Fcryptolinkshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbocaletto-luca%2Fcryptolinkshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbocaletto-luca%2Fcryptolinkshare/lists"}