Developer Documentation & Technical Information
This page offers insights into the technical implementation, cryptographic methods, and development aspects of the Encrypti0n.com Web App , supporting transparency and encouraging open collaboration.
This developer documentation highlights the browser-based cryptography behind Encrypti0n.com , focusing on AES-GCM , open source libraries , and the Web Crypto API .
Cryptographic Libraries & APIs Used
Encrypti0n.com uses modern browser-native cryptographic libraries:
@mqxym/cryptit v2.2.1: TypeScript powered API used for AES-GCM / Argon2id text and file encryption (GitHub) .@mqxym/secure-local-storage v0.8.0: Browser API used for securing the local storage data with AES-GCM envelope encryption (GitHub) .window.crypto: Secure random number generation and cryptographic operations (used in @mqxym/cryptit / @mqxym/secure-local-storage).window.crypto.subtle: Provides essential cryptographic primitives like AES-GCM encryption/decryption and key imports (used in @mqxym/cryptit / @mqxym/secure-local-storage).antelle/argon2-browser: Provides the Argon2id key derivation implementation for browsers (used in @mqxym/cryptit / @mqxym/secure-local-storage) (GitHub) .
Some APIs are part of the Web Crypto API specification , offering robust, secure cryptographic functions directly within supported browsers.
Other Libraries Used
Bootstrap v5: Custom Bootstrap 5 template for the pages design (Official Page) .jQuery v3.6.0: Used for DOM manipulation but will be replaced by vanilla JS step by step (Official Page) .StreamSaver.js v2.0.6: Used for streaming (downloading) large files directly to disk (Github) .SweetAlert2: For the informational popups (Official Page) .HighlightJS v11.9: For code highlighting (Official Page) .deanilvincent/check-password-strength: For encryption password strenght checking (GitHub) .autonomoussoftware/fast-password-entropy: For password generator entropy checking / displaying (GitHub) .IonDen/ion.rangeSlide: Range-slider for password generator app (GitHub) .dropbox/zxcvbn: Password strenght estimation for password checker app (GitHub) .JSZip v3.10.1: Zip Download / Upload of multiple encrypted files (Official Page) .
Source Code Availability
Encrypti0n.com strongly believes in transparency, which is why the complete source code is openly available on GitHub:
Encrypti0n.com GitHub Repository
Developers, researchers, and privacy enthusiasts are encouraged to inspect, review, and contribute to enhance the project's reliability and security.
Internal Error Handling Mechanism
Encrypti0n.com uses precise and secure error handling aligned with the tamper-proof nature of AES-GCM encryption:
- AES-GCM Decryption Errors: When decrypting data, the Web Crypto API returns explicit errors if the provided key, nonce, or ciphertext is incorrect, indicating potential tampering or incorrect passwords.
- Tamper-proof Encryption: AES-GCM inherently provides authentication, meaning any alteration to the encrypted data will result in failed decryption, immediately alerting the user.
This ensures reliable security by always returning an error (e.g., wrong passwords) or potential data corruption or attacks. Read more here, in the Official Web Crypto API "Decrypt Method" Docs .
For a step-by-step breakdown of encryption and decryption processes , visit our How Encrypti0n.com Works page.
Example-Code:
try {
decryptedData = await window.crypto.subtle.decrypt(
{ name: "AES-GCM", iv: iv },
derivedKey,
encryptedData
);
} catch (error) {
displayError("Decryption failed: Incorrect password or data integrity compromised.");
}Browser Compatibility
Encrypti0n.com uses the Web Crypto API and depends on @mqxym/secure-local-storage and @mqxym/cryptit . To keep things simple for users, we publish a single, definitive minimum version per browser. This baseline is the highest requirement across both libraries and their underlying features (SubtleCrypto, IndexedDB, WebAssembly, and secure randomness).
- Google Chrome: 57+
- Mozilla Firefox: 52+
- Microsoft Edge (Chromium): 79+
- Apple Safari (macOS): 11+
- Safari on iOS/iPadOS: 11+
- Opera: 44+ (Chromium-based)
Why these versions?
secure-local-storagerequires SubtleCrypto and IndexedDB . While most browsers added SubtleCrypto early, the decisive constraint for Edge is IndexedDB/WebCrypto support in Chromium-based Edge, making Edge 79+ the minimum.cryptitrequires WebAssembly and the Web Crypto API. WebAssembly raises the floor to Chrome 57+ , Firefox 52+ , and Safari 11+ .- We take the maximum of these requirements per browser so a single baseline covers both dependencies: Chrome 57, Firefox 52, Edge 79, Safari 11, iOS Safari 11. For Opera, we align to its Chromium equivalent (WebAssembly-era), hence Opera 44+ .
Note on language targets: sls compiles to ES2022 and cryptit to ES2020. The baseline above is governed by runtime features (WebAssembly, SubtleCrypto, IndexedDB), not syntax alone.
Safari-specific note:
Streaming large files to disk via a Service Worker is not supported in Safari. We automatically adjust the upload size limit for encryption based on the device to ensure reliability.
Security context:
The Web Crypto API only works in secure contexts (HTTPS). Older/legacy browsers (e.g., Internet Explorer or significantly outdated versions) are not supported.
Tip: Updating to the latest browser version is recommended for best performance and security.
Encrypti0n.com continues to embrace open standards and transparency, fostering a secure and reliable encryption solution available directly in your browser.