diff --git a/Firefox_Extensions/background.js b/Firefox_Extensions/background.js new file mode 100644 index 0000000..d039684 --- /dev/null +++ b/Firefox_Extensions/background.js @@ -0,0 +1,240 @@ +var sample = [ + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "!", + "@", + "#", + "$", + "%", + "^", + "&", + "*", + "$", + "?", +]; + +var def_lt = [ + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", +]; + +const wrap = (string) => { + ans = []; + for (let i = 0; i < string.length; i += 12) { + a = string.slice(i, i + 12); + ans.push(a); + } + return ans; +}; + +function add(a, b) { + a = a.toString(); + b = b.toString(); + + if (a == "" || typeof a == undefined) { + return b; + } + ans = ""; + if (a.length == b.length) { + for (let i = 0; i < a.length; i++) { + ans += sample[(a[i].charCodeAt(0) + b[i].charCodeAt(0)) % 72]; + } + } else { + for (let i = 0; i < b.length; i++) { + ans += sample[(a[i].charCodeAt(0) + b[i].charCodeAt(0)) % 72]; + } + ans += a.slice(b.length, a.length); + } + return ans.toString(); +} + +var xhr = new XMLHttpRequest(); +var data; +xhr.open("GET", chrome.extension.getURL("cipher.json"), true); +xhr.send(); +xhr.onreadystatechange = () => { + if (xhr.readyState == 4) { + data = xhr.response; + data = JSON.parse(data); + // console.log(data['0']['a']); + chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + if (request.generate == true) { + chrome.storage.sync.get(["init_pass"], (initPass) => { + console.log(initPass); + chrome.storage.sync.get(["lucky"], (lucky) => { + console.log(lucky); + var luck = parseInt(lucky.lucky); + luck1 = luck % 5; + luck1 = `${luck1}`; + console.log(luck1, typeof luck1); + var ans = ""; + for (let i = 0; i < initPass.init_pass.length; i++) { + a = initPass.init_pass[i]; + if (def_lt.includes(a)) { + ans += data[luck1][a]; + } else { + ans += a; + } + } + ans = wrap(ans); + console.log("ans", ans); + luck += 100; + luck %= 72; + ans1 = sample[luck].toString(); + for (let i = 1; i < 12; i++) { + ans1 += sample[ans1[i - 1].charCodeAt(0) % 72]; + } + // console.log('initial', ans1); + // ans1.replace(ans1[0],) + + for (let i = 0; i < ans.length; i++) { + ans1 = add(ans1, ans[i]); + // console.log('in loop',ans1); + } + console.log(ans1); + luck += + initPass.init_pass.length + + ans.length * initPass.init_pass.length; + luck %= 72; + char1 = sample[(luck % 26) + 26] + sample[((luck + 111) % 10) + 62]; // HAVE SINGLE CHARS + char3 = + sample[((luck + 222) % 10) + 62] + sample[(luck + 300) % 26]; + console.log(char1, char3); + + // luck = rand_() ===========CHANGE========== + + luck = (initPass.init_pass.length * luck) % ans1.length; + + ans1 = ans1.slice(0, luck) + char1 + ans1.slice(luck, ans1.length); + + luck += initPass.init_pass.length + ans.length; + luck %= ans1.length; + + ans1 = ans1.slice(0, luck) + char3 + ans1.slice(luck, ans1.length); + + // ans1=sample[luck] + sample[(luck+100)%72] + ans1; + // ans1+=sample[((luck+200)%10)+62] + sample[(luck+300)%72]; + console.log(ans1); + chrome.storage.sync.set({ gen_pass: ans1 }, () => { + chrome.runtime.sendMessage({ generated: true }); + }); + }); + }); + } + }); + } +}; + +// const print = (data)=>{ +// console.log(data); +// } diff --git a/Firefox_Extensions/cipher.json b/Firefox_Extensions/cipher.json new file mode 100644 index 0000000..be3215b --- /dev/null +++ b/Firefox_Extensions/cipher.json @@ -0,0 +1,358 @@ +{ + "0": { + "a": "87yhj8ik", + "b": "4eserds", + "c": "54er", + "d": "iuhj9ij", + "e": "ui87yhj", + "f": "87ygftyu", + "g": "oijkokmn", + "h": "9ijiok", + "i": "6yh", + "j": "7ujh", + "k": "4rfr5rg", + "l": "7uji", + "m": "i9o0p", + "n": "ujjuik", + "o": "09io0", + "p": "okmoplk", + "q": "76yu7uj", + "r": "y7ujju78", + "s": "98ikj", + "t": "uio8ikl", + "u": "7ui88io", + "v": "8iko0", + "w": "4r5t6", + "x": "8i9u", + "y": "t6y7yg", + "z": "78uhj", + "A": "$ES$RFER", + "B": "%TG%^YTTYHG", + "C": "&^TGH", + "D": "UHBUIKMNB", + "E": "YHNMYUHJ", + "F": "YGVYUGH", + "G": "*&YHJIK", + "H": "UHBIJNHJ", + "I": "&*(*UHGHJ", + "J": "*IKJ", + "K": "YHNHUHM", + "L": "YGVB", + "M": "CFTGBHUJM", + "N": "YGVYHNJI", + "O": "(*UI(", + "P": "YHNYUJH", + "Q": "&^TGHU&J", + "R": "^YH^&UYJ", + "S": "(*&UJMNB", + "T": "%^&^YH", + "U": "%TGHJU&", + "V": "YHNJI", + "W": "TGBHUJMKO", + "X": "&UJ*UH", + "Y": "&U(IJN", + "Z": "WERRDXXCV" + }, + + "1": { + "a": "76tgh7uj", + "b": "3wawesa", + "c": "43we", + "d": "uygh8uh", + "e": "yu76tgh", + "f": "76tfdrty", + "g": "iuhjijnb", + "h": "8uhuij", + "i": "5tg", + "j": "6yhg", + "k": "3ede4ef", + "l": "6yhu", + "m": "u8i9o", + "n": "yhhyuj", + "o": "98ui9", + "p": "ijniokj", + "q": "65ty6yh", + "r": "t6yhhy67", + "s": "87ujh", + "t": "yui7ujk", + "u": "6yu77ui", + "v": "7uji9", + "w": "3e4r5", + "x": "7i8y", + "y": "r5t6tf", + "z": "67ygh", + "A": "#WA#EDWE", + "B": "$RF$%TRRTGF", + "C": "^%RFG", + "D": "YGVYUJNBV", + "E": "TGBNTYGH", + "F": "TFCTYFG", + "G": "&^TGHUJ", + "H": "YGVUHBGH", + "I": "^&*&YGFGH", + "J": "&UJH", + "K": "TGBGYGN", + "L": "TFCV", + "M": "XDRFVGYHN", + "N": "TFCTGBHU", + "O": "*&YU*", + "P": "TGBTYHG", + "Q": "^%RFGY^H", + "R": "%TG%^YTH", + "S": "*&^YHNBV", + "T": "$%^%TG", + "U": "$RFGHY^", + "V": "TGBHU", + "W": "RFVGYHNJI", + "X": "^YH&YG", + "Y": "^Y*UHB", + "Z": "QWEESZZXC" + }, + + "2": { + "a": "98ujk9ol", + "b": "5rdrtf", + "c": "65rt", + "d": "oijk0ok", + "e": "io98ujk", + "f": "98uhgyui", + "g": "poklpl,m", + "h": "0okopl", + "i": "7uj", + "j": "8ikj", + "k": "5tgt6th", + "l": "8iko", + "m": "o0p-[", + "n": "ikkiol", + "o": "-0op-", + "p": "pl,p[;l", + "q": "87ui8ik", + "r": "u8ikki89", + "s": "09olk", + "t": "iop9ol;", + "u": "8io99op", + "v": "9olp-", + "w": "5t6y7", + "x": "9o0i", + "y": "y7u8uh", + "z": "89ijk", + "A": "%RD%TGRT", + "B": "^YH^&UYYUJH", + "C": "*&YHJ", + "D": "IJNIOL", + ".", + "<", + "," + ] +} diff --git a/Firefox_Extensions/logo.png b/Firefox_Extensions/logo.png new file mode 100644 index 0000000..8685f66 Binary files /dev/null and b/Firefox_Extensions/logo.png differ diff --git a/Firefox_Extensions/manifest.json b/Firefox_Extensions/manifest.json new file mode 100644 index 0000000..7948548 --- /dev/null +++ b/Firefox_Extensions/manifest.json @@ -0,0 +1,19 @@ +{ + "browser_action": { + "default_popup": "popup.html", + "default_title": "password generator" + }, + "web_accessible_resources": ["cipher.json"], + "background": { + "scripts": ["background.js"] + }, + "icons": { + "48": "logo.png" + }, + "permissions": ["storage", "notifications"], + "name": "PR-Pass", + "version": "1.0.5", + "description": "Easy to create passwords", + "author": "Ekansh Gupta - Nimish Shah", + "manifest_version": 2 +} diff --git a/Firefox_Extensions/popup.html b/Firefox_Extensions/popup.html new file mode 100644 index 0000000..08896f6 --- /dev/null +++ b/Firefox_Extensions/popup.html @@ -0,0 +1,49 @@ + + + + + + + + + + + + +

+ + + + + diff --git a/Firefox_Extensions/popup.js b/Firefox_Extensions/popup.js new file mode 100644 index 0000000..1dd3184 --- /dev/null +++ b/Firefox_Extensions/popup.js @@ -0,0 +1,105 @@ +document.addEventListener("DOMContentLoaded", async function () { + var submit = document.getElementById("submit"); + var lucky = document.getElementById("lucky"); + var pass = document.getElementById("password"); + var gen_pass = document.getElementById("gen-pass"); + var edit = document.getElementById("edit"); + var body = document.getElementById("body"); + var copy = document.getElementById("copy"); + + submit.addEventListener("click", function () { + // chk=new RegExp("hide"); + var l_num = lucky.value || 0; + var in_pass = pass.value || 0; + + console.log(l_num, in_pass); + + if (l_num != 0) { + chrome.storage.sync.set({ lucky: l_num }, function () { + chrome.notifications.create("success", { + type: "basic", + iconUrl: "logo.png", + title: "success", + message: "Lucky Number Successfully saved", + }); + body.insertBefore(pass, lucky); + lucky.value = ""; + lucky.remove(); + l_num = 0; + // lucky.className+=" hide"; + // pass.className-=" hide"; + // lucky.style.height='0px'; + }); + } + + // if(!chk.test(lucky.className)){ + // var l_num=lucky.value; + + // } + + if (in_pass != 0) { + chrome.storage.sync.set({ init_pass: in_pass }, function () { + chrome.runtime.sendMessage({ generate: true }); + }); + in_pass = 0; + } + // if(!chk.test(pass.className)){ + // var in_pass=pass.value; + // chr + // } + console.log(l_num, in_pass); + }); + + edit.addEventListener("click", function () { + // lucky.className-=" hide"; + lucky.value = ""; + body.insertBefore(lucky, pass); + // pass.className+=" hide"; + + pass.value = ""; + pass.remove(); + }); + + chrome.storage.sync.get(["lucky"], (data) => { + if (data.lucky) { + // gen_pass.innerHTML=data.lucky; + // lucky.className+=" hide"; + lucky.remove(); + } + }); + + chrome.runtime.onMessage.addListener(function ( + request, + sender, + sendResponse + ) { + if (request.generated) { + chrome.storage.sync.get(["gen_pass"], function (gen_p) { + gen_pass.innerHTML = gen_p.gen_pass; + }); + } + }); + + copy.addEventListener("click", async function () { + chrome.storage.sync.get(["gen_pass"], async function (res) { + await navigator.clipboard.writeText(res.gen_pass).then( + function () { + chrome.notifications.create("copy_success", { + type: "basic", + iconUrl: "logo.png", + title: "copy success", + message: "Password copied on Clipboard successfully", + }); + }, + function () { + chrome.notifications.create("copy_fail", { + type: "basic", + iconUrl: "logo.png", + title: "copy_fail", + message: "Could not copy... Try reloading the extension", + }); + } + ); + }); + }); +}); diff --git a/Firefox_Extensions/test.js b/Firefox_Extensions/test.js new file mode 100644 index 0000000..f501025 --- /dev/null +++ b/Firefox_Extensions/test.js @@ -0,0 +1,36 @@ +// function add(arr,char){ + +// } + +// function wrap(string,num,data) { +// ans=[]; +// // b=data["sample"][num]; +// b='f' +// c="" +// for(let i=0;i<12;i++){ +// c+=b; +// } +// ans.push(c); +// for(let i=0;i