Learn to Protect Yourself - Basic Offline Encryption Tool - Javascript Tutorial

in #utopian-io6 years ago

Repository

https://github.com/blws/text-encrypt

1gtlUpb.png

About text-encrypt



Offline minimal encryption tool and key generator.
Website: https://blws.github.io/text-encrypt

combination.gif

Technology Stack

Javascript, html, css

Roadmap

This is standalone offline text encryptor and key generator.
There is no roadmap, because it simply works.

New Features

1 - Basic Layout

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Crypt</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
        * {margin: 0 auto;padding: 0;}
        .w1 {width: 100%;}
        .w2 {width: 50%;float: left;}
        .h1 {height: 300px;}
    </style>
</head>
<body>
    <input id="pass" placeholder="strong password" class="w2" type="text"></input>
    <label> Length: </label>
    <input id="limit" type="text" value="8" style="width:36px;"></input>
    <button onclick="generate()">Generate</button>
    <br>
    <textarea id="dtext" placeholder=" decrypted text" class="w1 h1"></textarea>
    <br>
    <button class="w2" onclick="enc()">encrypt</button>
    <button class="w2" onclick="dec()">decrypt</button>
    <br>
    <textarea id="etext" placeholder=" encrypted text" class="w1 h1"></textarea>
</body>
</html>

https://github.com/blws/text-encrypt/blob/master/index.html#L1
https://github.com/blws/text-encrypt/blob/master/index.html#L2408

2 - Generate Password or choose your own

//generate key / password
function generate() {
            var text = "";
            var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
            var limit = parseInt(document.getElementById("limit").value);
            for (var i = 0; i < limit; i++)
                text += possible.charAt(Math.floor(Math.random() * possible.length));
            document.getElementById("pass").value = text;
        }

https://github.com/blws/text-encrypt/blob/master/index.html#L2442

3 - Encrypt text

//encrypt text
//hashing password / key with SHA256
//encrypting - AES
function enc() {
    var pass = document.getElementById("pass").value;
    var passHash = CryptoJS.SHA256(pass).toString();
    var dtext = document.getElementById("dtext").value; //.replace(/(?:\r\n|\r|\n)/g, '');
    document.getElementById("etext").value =
        CryptoJS.AES.encrypt(dtext, passHash).toString();
}

https://github.com/blws/text-encrypt/blob/master/index.html#L2419
4 - Decrypt text

//decrypt text
//hashing password / key with SHA256
//decrypting - AES
function dec() {
    var pass = document.getElementById("pass").value;
    var passHash = CryptoJS.SHA256(pass).toString();
    var etext = document.getElementById("etext").value;
    document.getElementById("dtext").value =
        CryptoJS.AES.decrypt(etext, passHash)
        .toString(CryptoJS.enc.Utf8);
}

https://github.com/blws/text-encrypt/blob/master/index.html#L2430

GitHub Account

https://github.com/blws

Sort:  

Thank you for your contribution. What you are doing is just storing contents of https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js in the HTML File and then calling those functions from the javaScript. As of now I am not seeing any uniqueness for this because anyone can call those functions and get the Encrypted text.

This can be enhanced greatly if you create a Windows Application and then encrypt password and save locally.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

I'm glad to see you chose an offline encryption tool for this article. Very informative.

5336836.jpg

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.033
BTC 92268.82
ETH 3102.93
USDT 1.00
SBD 3.03