The following code (a part of the full extension's code) can be used to generate the passwords, in case the extension is not available.
You can run it in the developer console of a desktop web browser.
(You can find the full source code by right clicking the extension icon and then 'Inspect popup'. The code is in the 'Sources' tab.)
You can run it in the developer console of a desktop web browser.
(You can find the full source code by right clicking the extension icon and then 'Inspect popup'. The code is in the 'Sources' tab.)
/// Example use: /// calc("my master password", "ebay") /// You will need to include SparkMD5 version 1.0.0: /// https://cdnjs.cloudflare.com/ajax/libs/spark-md5/1.0.0/spark-md5.min.js /// (it's already included here) /// The relevant functions function hash(i) { return SparkMD5.hash(i) + ""; } function rawhash(i) { return SparkMD5.hash(i, true); } function calc(masterPasswordRaw, siteTag) { var MP = hash(masterPasswordRaw + "OnePass"); var sitePass = hash(MP + siteTag); console.log("Your site password is: " + sitePass); var hs = rawhash(MP + siteTag); var str = ""; var spstr = ""; for (var k = 0; k < 4; k++) { for (var m = 0; m < 32; m+=8) { var tp = hs[k] >>> m; str += charfor(tp); spstr += spcharfor(tp); } } for (var len = 8; len <= 16; len+=4) { var slpos = 16 - len; console.log("Mixed chars of length " + len + " is: " + str.slice(slpos)); console.log("Special chars of length " + len + " is: " + spstr.slice(slpos)); } } /// Ascii <-> binary mapping // Returns an ascii char for byte i (mapped) function charfor(i) { return String.fromCharCode(asciimap(i)); } // Special char function spcharfor(i) { return String.fromCharCode(spasciimap(i)); } // Maps i to an ascii alphanumeric code (0-9, A-Z, a-z) function asciimap(i) { i = i >>> 0; // make unsigned i &= 0x3F; // use the lower 6 bits if (i < 10) return i + 48; // 0-9 if (i < 36) return i + 55; // A-Z if (i < 62) return i + 61; // a-z return i + 3; // roll back to A } // Special characters ascii map function spasciimap(i) { i = i >>> 0; // make unsigned i &= 0xFF; // use 1 Byte if (i < 0xC0) return asciimap(i); i &= 0x07; // use the lower 3 bits if (i < 6) return i + 33; // ! " # $ % & return i + 57; // ? @ }