Encrypt / Decrypt Message

encrypt-message.skillsafe.ai

Clean Completely free

Encrypt a message with a passphrase and share it as a link - the recipient opens the link, enters the passphrase, and reads the message. Uses browser WebCrypto (AES-GCM 256 with a PBKDF2-derived key, 100,000 iterations, random salt); nothing is uploaded. Imported Claude artifact. Source: https://github.com/simonw/tools (encrypt.html, Apache-2.0).

Share

Details

PricingCompletely free
Security scanClean — skill and frontend scanned
Created2026-08-24
Updated2026-08-24
View source prompt + release files — fork-enabled apps share their full source

System prompt (SKILL.md)

---
name: encrypt-message
description: Encrypt a message with a passphrase in the browser and share it as a link; the recipient decrypts with the same passphrase.
metadata:
  tags:
    - artifact-import
    - security
  source_url: https://tools.simonwillison.net/encrypt
  github_repo_url: https://github.com/simonw/tools
---

# Encrypt / Decrypt Message

An imported Claude artifact. Type a message and a passphrase, and the page
produces a link containing the ciphertext. Send the link to someone, tell them
the passphrase by some other channel, and opening the link lets them decrypt it.

It uses the browser's built-in WebCrypto: a 256-bit AES-GCM key derived from
the passphrase with PBKDF2 at 100,000 iterations over a random 16-byte salt.
Encryption and decryption both happen in the page - the message and passphrase
are never sent anywhere, no model is called, and nothing is metered.

The ciphertext travels in the URL, so treat the link as the secret half and the
passphrase as the other half: sending both through the same channel defeats the
point.

Release files (files)

Every public app is built from a security-scanned skill and must pass a clean scan — skill and frontend — before it can be listed. Have a skill of your own? Turn it into an app — or read the step-by-step walkthrough.