All Projects → sh-dv → Hat.sh

sh-dv / Hat.sh

Licence: mit
encrypt and decrypt files in your browser. Fast, Secure client-side File Encryption and Decryption using the web crypto api

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Hat.sh

Gonnacry
A Linux Ransomware
Stars: ✭ 341 (-61.51%)
Mutual labels:  encryption, aes, decryption, aes-encryption
Padding Oracle Attacker
🔓 CLI tool and library to execute padding oracle attacks easily, with support for concurrent network requests and an elegant UI.
Stars: ✭ 136 (-84.65%)
Mutual labels:  encryption, crypto, aes, decryption
Cross Platform Aes
Simple cross-platform encryption and decryption using AES
Stars: ✭ 127 (-85.67%)
Mutual labels:  encryption, aes, decryption, aes-encryption
Python-File-Encryptor
Encrypt and Decrypt files using Python (AES CBC MODE)
Stars: ✭ 51 (-94.24%)
Mutual labels:  encryption, aes, aes-encryption, decryption
Hybrid Crypto Js
RSA+AES hybrid encryption implementation for JavaScript. Works with Node.js, React Native and modern browsers.
Stars: ✭ 87 (-90.18%)
Mutual labels:  encryption, aes, decryption
Link Lock
Password-protect URLs using AES in the browser; create hidden bookmarks without a browser extension
Stars: ✭ 418 (-52.82%)
Mutual labels:  encryption, aes, aes-encryption
Secure Ls
🔒 Secure localStorage data with high level of encryption and data compression
Stars: ✭ 486 (-45.15%)
Mutual labels:  encryption, decryption, aes-encryption
abrute
Multi-threaded AES Brute Force File Decryption
Stars: ✭ 22 (-97.52%)
Mutual labels:  aes, aes-encryption, decryption
Cryptr
A simple shell utility for encrypting and decrypting files using OpenSSL.
Stars: ✭ 81 (-90.86%)
Mutual labels:  encryption, decryption, aes-encryption
Jsrsasign
The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES JSON Web Signature/Token in pure JavaScript.
Stars: ✭ 2,760 (+211.51%)
Mutual labels:  encryption, aes, decryption
OormiPass
Free open source cross platform password manager
Stars: ✭ 50 (-94.36%)
Mutual labels:  crypto, encryption, aes
Py7zr
7zip in python3 with ZStandard, PPMd, LZMA2, LZMA1, Delta, BCJ, BZip2, and Deflate compressions, and AES encryption.
Stars: ✭ 110 (-87.58%)
Mutual labels:  encryption, aes, decryption
Encryptor4j
Strong encryption for Java simplified
Stars: ✭ 92 (-89.62%)
Mutual labels:  encryption, aes, decryption
Crypto
封装多种CTF和平时常见加密及编码C#类库
Stars: ✭ 20 (-97.74%)
Mutual labels:  crypto, encryption, decryption
AESCipher-Java
AES encryption working between Objective-C and Java.
Stars: ✭ 88 (-90.07%)
Mutual labels:  aes, aes-encryption, decryption
EasyAES
AES encrypt/decrypt, Android, iOS, php compatible(兼容php, Android, iOS平台)
Stars: ✭ 79 (-91.08%)
Mutual labels:  encryption, aes, decryption
Laravel Database Encryption
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
Stars: ✭ 238 (-73.14%)
Mutual labels:  encryption, aes, decryption
Aescipher Ios
AES encryption working between Objective-C and Java.
Stars: ✭ 198 (-77.65%)
Mutual labels:  aes, decryption, aes-encryption
Crypto Es
A cryptography algorithms library
Stars: ✭ 65 (-92.66%)
Mutual labels:  encryption, crypto, aes
EncrypC
🔑 File Encryption Application using Python.
Stars: ✭ 14 (-98.42%)
Mutual labels:  encryption, aes, aes-encryption

https://hat.sh


hat.sh is a javascript app that provides secure file encryption using the AES-256-GCM algorithm from WebCryptoAPI provided by your browser. it was coded following the WebCrypto Documentations.

It's fast, secure and Serverless, the app never uploads the files to the server.

in a small amount of code the app can encrypt any type of files at any size within seconds.

To use the app all you have to do is Browse a file, Type a Decryption Key or Generate one through our secure key generator. and your encrypted file is ready to download.

V2.0 is coming soon.

How to use

just simply browse a file, type a decryption key or use our secure key generator, and encrypt or decrypt.

enter image description here

Offline Use

the app is cross-platform and is available to download on macOS , Windows and linux

Requirements

NodeJS and NPM

Browserify which lets you require('modules') in the browser by bundling up all of your dependencies.

Installation

Download or clone the repository

$ git clone https://github.com/sh-dv/hat.sh.git hat.sh

go to the app directory

cd [app directory]

open terminal and install the node modules that are in the package.json file

sudo npm install

after the packages are installed bundle main app.js and modules together in one file using Browserify

browserify src/js/app.js -o bundle.js

then start the app by running index.html

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 , IOS, Android
  • Firefox on Windows, macOS, and Linux
  • Safari on iOS and macOS
  • Edge on Windows
  • IE 11 on Windows

for more info see WebCryptoAPI home page enter image description here

Crypto Examples

AES-GCM - generateKey

  window.crypto.subtle.generateKey(
    {
      name: "AES-GCM",
      length: 256,
    },
    true,
    ["encrypt", "decrypt"]
  )
.then(function(key){
    console.log(key);
})
.catch(function(err){
    console.error(err);
});

AES-GCM - importKey

function importSecretKey(rawKey) {
    return window.crypto.subtle.importKey(
      "raw",
      rawKey,
      "AES-GCM",
      true,
      ["encrypt", "decrypt"]
    );
  }
.then(function(key){
    console.log(key);
})
.catch(function(err){
    console.error(err);
});

AES-GCM - exportKey

async function exportCryptoKey(key) {
    const exported = await window.crypto.subtle.exportKey(
      "raw",
      key
    )
.then(function(keydata){
    console.log(keydata);
})
.catch(function(err){
    console.error(err);
});

AES-GCM - encrypt

async function encryptMessage(key) {
    let encoded = getMessageEncoding();
    // The iv must never be reused with a given key.
    iv = window.crypto.getRandomValues(new Uint8Array(12));
    ciphertext = await window.crypto.subtle.encrypt(
            {
                name: "AES-GCM",
                iv: iv
            },
            key,
            encoded
        )
        .then(function (encrypted) {
            console.log(new Uint8Array(encrypted));
        })
        .catch(function (err) {
            console.error(err);
        });
}

AES-GCM - decrypt

async function decryptMessage(key) {
    let encoded = getMessageEncoding();
    let decrypted = await window.crypto.subtle.decrypt({
            name: "AES-GCM",
            iv: iv
        },
        key,
        ciphertext
       )
       .then(function (decrypted) {
            console.log(new Uint8Array(encrypted));
        })
        .catch(function (err) {
            console.error(err);
        });
}

Credits

zxcvbn.js for Smart Password Strength Estimation

bootstrap for the responsive css layout

font-awesome for the icons

License

Copyright (c) 2019 sh-dv

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].