https://github.com/sh-dv/hat.sh
Encrypt and Decrypt files securely in your browser.
https://github.com/sh-dv/hat.sh
browser client-side cryptography decryption encryption encryption-decryption file-encryption in-browser javascript libsodium serverless xchacha20 xchacha20-poly1305
Last synced: 3 months ago
JSON representation
Encrypt and Decrypt files securely in your browser.
- Host: GitHub
- URL: https://github.com/sh-dv/hat.sh
- Owner: sh-dv
- License: mit
- Created: 2019-05-20T00:51:02.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-17T14:20:14.000Z (12 months ago)
- Last Synced: 2025-04-10T13:43:40.238Z (3 months ago)
- Topics: browser, client-side, cryptography, decryption, encryption, encryption-decryption, file-encryption, in-browser, javascript, libsodium, serverless, xchacha20, xchacha20-poly1305
- Language: JavaScript
- Homepage: https://hat.sh
- Size: 3.75 MB
- Stars: 2,215
- Watchers: 20
- Forks: 264
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome - sh-dv/hat.sh - Encrypt and Decrypt files securely in your browser. (JavaScript)
- awesome - sh-dv/hat.sh - Encrypt and Decrypt files securely in your browser. (JavaScript)
- starred - sh-dv/hat.sh - Encrypt and Decrypt files securely in your browser. (JavaScript)
- awesome-client-side - hat.sh - Encrypt and Decrypt files securely in your browser - [Try it!](https://hat.sh/) (Security / Video)
README
[](#)
[](#)
[](https://github.com/sh-dv/hat.sh/actions/workflows/codeql-analysis.yml)
[](https://github.com/sh-dv/hat.sh/actions/workflows/node.js.yml)
[](https://github.com/sh-dv/hat.sh/actions/workflows/snyk.yml)---
[Hat.sh](https://hat.sh) is a web app that provides secure local file encryption in the browser. It's fast, secure, and uses modern cryptographic algorithms with chunked AEAD stream encryption/decryption.
V2 of hat.sh introduced memory efficient in-browser large file chunked encryption using streams with libsodium.
## Usage

## Features
### Security
- XChaCha20-Poly1305 - for symmetric encryption.
- Argon2id - for password-based key derivation.
- X25519 - for key exchange.The libsodium library is used for all cryptographic algorithms.
### Privacy
- The app runs locally in your browser.
- No data is ever collected or sent to anyone.### Functionality
- Secure multiple file encryption/decryption with passwords or keys.
- Secure random password generation.
- Asymmetric key pair generation.
- Authenticated key exchange.
- Password strength estimation.
## Offline Use
The app can be easily self hosted, please follow the [installation](https://hat.sh/about/#installation) instructions.
## Browser Compatibility
We officially support the last two versions of every major browser. Specifically, we test on the following
- **Chrome** on Windows, macOS, and Linux , Android
- **Firefox** on Windows, macOS, and Linux
- **Safari** on iOS and macOS
- **Edge** on WindowsSafari and Mobile browsers are limited to single 1GB files, due to lack of support with server-worker fetch api.
## Official running instances of the app
| # | URL |
| --- | ----------------------------------------- |
| 1 | [hat.sh](https://hat.sh/) |
| 2 | [hat.now.sh](https://hat.now.sh/) |
| 2 | [hat.vercel.app](https://hat.vercel.app/) |
## Donations
The project is maintained in my free time. Donations of any size are appreciated :
Crypto
Coin
Address
![]()
Monero
84zQq4Xt7sq8cmGryuvWsXFMDvBvHjWjnMQXZWQQRXjB1TgoZWS9zBdNcYL7CRbQBqcDdxr4RtcvCgApmQcU6SemVXd7RuG
![]()
Bitcoin
bc1qlfnq8nu2k84h3jth7a27khaq0p2l2gvtyl2dv6
![]()
Ethereum
0xF6F204B044CC73Fa90d7A7e4C5EC2947b83b917e
Kofi[https://ko-fi.com/shdvapps](https://ko-fi.com/shdvapps)
Open Collective
[https://opencollective.com/hatsh](https://opencollective.com/hatsh)
## Social
- [Reddit](https://reddit.com/r/hatsh)
## Acknowledgements
- Everyone who supported the project.
- [Samuel-lucas6](https://github.com/samuel-lucas6) from the [Kryptor](https://github.com/samuel-lucas6/Kryptor) project for being helpful and doing a lot of beta testing.
- [stophecom](https://github.com/stophecom) from the [Scrt.link](https://scrt.link/) project for translating to German.
- [bbouille](https://github.com/bbouille) for translating to French.
- [qaqland](https://github.com/qaqland) for translating to Chinese.
- [Ser-Bul](https://github.com/Ser-Bul) for translating to Russian.
- [matteotardito](https://github.com/matteotardito) for translating to Italian.
- [t0mzSK](https://github.com/t0mzSK) for translating to Slovak.
- [Xurdejl](https://github.com/Xurdejl) for translating to Spanish.
- [Franatrtur](https://github.com/Franatrtur) for translating to Czech.
- [darkao](https://github.com/darkao) for translating to Turkish.
- [Frank7sun](https://github.com/Frank7sun) for translating to Japanese.
## Credits
[libsodium.js](https://github.com/jedisct1/libsodium.js)
[next.js](https://nextjs.org/)
[material-ui](https://material-ui.com/)
## License
[Copyright (c) 2022 sh-dv](https://github.com/sh-dv/hat.sh/blob/master/LICENSE)