passy
Version:
An offline password manager stored locally with CLI interaction
2 lines • 10.3 kB
JavaScript
let a1_0xb81c8a=a1_0x8e9c,fs=((()=>{for(var e=a1_0x8e9c,r=a1_0xdea8();;)try{if(727562==-parseInt(e(520))+-parseInt(e(531))/2*(-parseInt(e(523))/3)+-parseInt(e(512))/4*(parseInt(e(463))/5)+parseInt(e(556))/6*(-parseInt(e(564))/7)+-parseInt(e(431))/8*(-parseInt(e(440))/9)+parseInt(e(492))/10*(parseInt(e(466))/11)+parseInt(e(489))/12)break;r.push(r.shift())}catch(e){r.push(r.shift())}})(),require("fs")),path=require(a1_0xb81c8a(541)),readline=require("readline"),crypto=require(a1_0xb81c8a(506)),sudoPrompt=require(a1_0xb81c8a(575)),{encrypt,decrypt}=require(a1_0xb81c8a(438)),STORAGE_FILE=path.resolve(__dirname,a1_0xb81c8a(551)),KEY_FILE=path[a1_0xb81c8a(428)](__dirname,a1_0xb81c8a(535)),rl=readline.createInterface({input:process[a1_0xb81c8a(573)],output:process[a1_0xb81c8a(499)]});function a1_0xdea8(){let e=["YjBUU","Goodbye!","No password found for the label: ","./encryptor",'" > "',"144tCUUGL","qHGrM","dbSpw","dwGaE","Choose an option: ","Encryption key not initialized","QiFFt","qynBe","entries","AoioV","HjcjB","zDolH","AcATr","cbBru","mTqwf","AMKIa","SXypj","WXQea","question","existsSync","error","oneYK","DCjSP","1072805lSMKHb","oQSXL","GxVYp","1441374LVMOVF","brhWf","Found! ","Ulhsg","LXKLi","qIAMC","SmedT","hex","ZSuLx","randomBytes","MxDqb","ETVfJ","trim","SlsmZ","QKBvY","mpoze","vNkIp","iRNzI","vBnOL","fDpiM",'echo "',"ayBBz","eiUKN","10063116nwQuEd","EdfoJ","yBIka","30WtGynU","exec","wQaTv","close","wfbVg","EalED","lMbAP","stdout","stringify","sVvFF","LqPDF","ZLVRP","HWZeY","xDqOr","crypto","VKdKW","JOLbr","ZTWQd","QClkv","log","4StdCxU","Failed to load passwords: ","zNfbM","lSVVy","Invalid option. Please try again.","JRXLG","utf8","sXmym","1272508fjMsEA","Failed to save passwords: ","nJWNK","119895DzqjOx","=== Stored Passwords ===","aISDx","oSGaA","Failed to generate encryption key","message","IGiAv","slpSf","60PKmzzw","ZIFwQ","hqPeR","PKxIp",".encryption_key","cAuQi","writeFileSync","PRPmd","Enter the password: ","NBQwY","path","ubpbJ","jRnsb","rlKfl","ItUeU","parse","vRYXa","XtIsf","RRXxP","zIfMR","passwords.json","exit","AUYcW","xqPFQ",'cat "',"12WVeBnw","\n ██████╗ █████╗ ███████╗███████╗██╗ ██╗\n ██╔══██╗██╔══██╗██╔════╝██╔════╝╚██╗ ██╔╝\n ██████╔╝███████║███████╗███████╗ ╚████╔╝ \n ██╔═══╝ ██╔══██║╚════██║╚════██║ ╚██╔╝ \n ██║ ██║ ██║███████║███████║ ██║ \n ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ \n \n Your Offline Password Manager – Simple. Secure. Offline.\n==========================================================================================\n1. Store a new password\n2. Retrieve all passwords\n3. Search for a password by label\n4. Exit\n==========================================================================================\n ","KxGoD","kGmjZ","WtRXT","Enter the label to search for: ","Ahwmr","orLOX","1280041JHaXTK","toString","Failed to read encryption key","JAeEe","VMmhT","AsNro","xCzZU","tCTZc","IiBky","stdin","zcJwW","sudo-prompt","yCyye","UAyjP","resolve","TjvAS","Password stored successfully!","74856ICAHPU","QIXQh","Failed to initialize: ","ElrOZ"];return(a1_0xdea8=function(){return e})()}let ENCRYPTION_KEY=null,IS_AUTHENTICATED=!1;function a1_0x8e9c(e,r){let n=a1_0xdea8();return(a1_0x8e9c=function(e,r){return e-=427,n[e]})(e,r)}let getEncryptionKey=()=>{let a=a1_0xb81c8a,t={AsNro:function(e,r){return e!==r},ubpbJ:a(496),VhEKF:function(e,r){return e(r)},mTqwf:"Failed to generate encryption key",PKxIp:function(e,r){return e(r)},fDpiM:a(445),zcJwW:a(518),SmedT:a(566),aISDx:function(e,r){return e(r)},MxDqb:function(e){return e()},lSVVy:a(524),xqPFQ:"Passy",WXQea:a(532),vRwuR:function(e,r){return e===r},eiUKN:a(467),TyyNb:a(455),sXmym:a(473),ETVfJ:a(471),oSGaA:a(553)};return new Promise((o,s)=>{let c=a,i={VKdKW:t[c(485)],vBnOL:t[c(574)],cAuQi:function(e,r,n){return e(r,n)},hqPeR:t[c(472)],SXypj:function(e,r){var n=c;return t[n(525)](e,r)},UAyjP:function(e){var r=c;return t[r(476)](e)},SlsmZ:t[c(515)],tCTZc:function(e,r){return t.AsNro(e,r)},NBQwY:c(549)},e={name:t[c(554)]};try{if(c(514)!==t[c(457)])if(fs[c(459)](KEY_FILE))sudoPrompt[c(493)](c(555)+KEY_FILE+'"',e,(e,r)=>{var n=c;if(i[n(571)](n(543),"jRnsb"))_0x48a600?i[n(456)](_0x37b56,new _0x3528b3(i.hqPeR)):(_0xc73145=!0,_0x57cecf(_0x5bbef8[n(478)]()));else if(e)if(i[n(571)](i.NBQwY,i[n(540)])){var a,t,e=i[n(427)](_0xb08a2d);_0x234ac4.log(i[n(479)]);for([a,t]of _0x49e795[n(448)](e))_0x83505.log(a+": "+t);_0xbb5dcb()}else s(new Error(i[n(533)]));else IS_AUTHENTICATED=!0,o(r[n(478)]())});else{if(t.vRwuR(t[c(488)],t.TyyNb)){if(!_0x3dea93[c(459)](_0x293752))return{};var r,n;if(_0x49c753)return r=_0x295f4c.readFileSync(_0x408823,i[c(484)]),n=i[c(536)](_0x2df127,r,_0x5b69cb),_0x565f65.parse(n);throw new _0x3bfae5(i[c(507)])}{let n=crypto[c(475)](32)[c(565)](t[c(519)]);sudoPrompt[c(493)](c(486)+n+c(439)+KEY_FILE+'" && chmod 0600 "'+KEY_FILE+'"',e,e=>{var r=c;t[r(569)](t[r(542)],t.ubpbJ)?_0x211f24(new _0x43f790(i[r(533)])):e?t.VhEKF(s,new Error(t[r(454)])):(IS_AUTHENTICATED=!0,t[r(534)](o,n))})}}else _0x3ab545.error(c(433),_0x1bd950.message),_0x45c6e7[c(552)](1)}catch(e){t[c(477)]===t[c(526)]?t[c(534)](_0x5b82b8,_0x3fd821):t.aISDx(s,e)}})},loadPasswords=()=>{let a=a1_0xb81c8a,r={QKBvY:a(548),xvnUu:a(450),PRPmd:"Encryption key not initialized",KxGoD:"utf8",LbhJA:function(e,r,n){return e(r,n)},QYxyu:a(572)};try{if(!fs[a(459)](STORAGE_FILE))return r[a(480)]===r.xvnUu&&_0x3d6d57[a(460)](a(513)+_0x19f2df[a(528)]),{};var e,n;if(ENCRYPTION_KEY)return e=fs.readFileSync(STORAGE_FILE,r[a(558)]),n=r.LbhJA(decrypt,e,ENCRYPTION_KEY),JSON[a(546)](n);throw new Error(r[a(538)])}catch(e){if(a(432)!==r.QYxyu)return console.error(a(513)+e[a(528)]),{};_0x59d50f.question(a(561),e=>{var r=a,n=_0x16e352();n[e]?_0x231100.log(r(468)+e+": "+n[e]):_0x4c6290[r(511)](r(437)+e),_0x15a0b7()})}},savePasswords=e=>{let a=a1_0xb81c8a,t={wQaTv:function(e,r){return e(r)},nJWNK:a(566),QiFFt:function(e,r){return e(r)},VTVVw:a(527),LXKLi:function(e,r){return e===r},QClkv:a(497),JRXLG:function(e,r){return e!==r},qBDGO:a(461),yCyye:a(445),ZLVRP:function(e,r,n){return e(r,n)},sVvFF:a(518),qynBe:function(e,r){return e===r},YlRax:"Oikax",ElrOZ:a(545)};try{if(t[a(470)](t[a(510)],t[a(510)])){if(!ENCRYPTION_KEY){if(!t[a(517)](t.qBDGO,a(461)))throw new Error(t[a(576)]);var r=_0x1e8b7f();r[_0x27bce2]?_0x4ce137.log("Found! "+_0x219856+": "+r[_0x533419]):_0x40c928[a(511)](a(437)+_0x2e8d80),_0x27cd52()}var n=t[a(503)](encrypt,JSON[a(500)](e),ENCRYPTION_KEY);fs[a(537)](STORAGE_FILE,n,t[a(501)])}else _0x383472[a(493)](a(555)+_0xa1d4ed+'"',_0x51c1f4,(e,r)=>{var n=a;e?t[n(494)](_0x540589,new _0x375530(t[n(522)])):(_0x2360fc=!0,t[n(446)](_0x44a047,r.trim()))})}catch(e){t[a(447)](t.YlRax,t[a(434)])?_0x3d6a73?t[a(494)](_0x41f4ce,new _0x36feaf(t.VTVVw)):(_0x2dfbcd=!0,t[a(494)](_0x54d3fd,_0x4285d4)):console.error(a(521)+e[a(528)])}},showMenu=()=>{var e=a1_0xb81c8a;console[e(511)](e(557))},storePassword=()=>{let r=a1_0xb81c8a,n={IGiAv:r(445),xUtPO:function(e,r,n){return e(r,n)},vRYXa:"utf8",JOLbr:function(e){return e()},slpSf:r(483),cQzOg:r(539)};rl[r(458)]("Enter a label for the password: ",a=>{let t=r,o={rlKfl:function(e,r){return e(r)},zIfMR:t(430),USMnk:function(e){var r=t;return n[r(508)](e)}};if("iRNzI"===n[t(530)])rl[t(458)](n.cQzOg,e=>{var r=t,n=loadPasswords();n[a]=e,o[r(544)](savePasswords,n),console[r(511)](o[r(550)]),o.USMnk(main)});else try{if(!_0x4894ee)throw new _0x2cfb9d(n[t(529)]);var e=n.xUtPO(_0x1b7b33,_0x106a13[t(500)](_0x5cd9bf),_0x76fe1d);_0x91027d[t(537)](_0x82147e,e,n[t(547)])}catch(e){_0xc7a5b5.error(t(521)+e[t(528)])}})},retrievePasswords=()=>{var e,r,n=a1_0xb81c8a,a={zDolH:function(e){return e()}},t=a[n(451)](loadPasswords);console[n(511)](n(524));for([e,r]of Object[n(448)](t))console.log(e+": "+r);a[n(451)](main)},searchPassword=()=>{let n=a1_0xb81c8a,a={ZTWQd:function(e){return e()},cbBru:n(430),vNkIp:n(539),orLOX:function(e,r){return e===r},VwuEq:n(561)};rl[n(458)](a.VwuEq,e=>{let t=n,o={kGmjZ:function(e){var r=a1_0x8e9c;return a[r(509)](e)},DCjSP:function(e,r){return e(r)},JAeEe:a[t(453)],GxVYp:function(e){return e()},Ahwmr:a[t(482)]},r=a[t(509)](loadPasswords);if(r[e])console[t(511)](t(468)+e+": "+r[e]);else if(a[t(563)](t(442),"NaVrT")){let a={HWZeY:function(e){var r=t;return o[r(559)](e)},nLspr:function(e,r){var n=t;return o[n(462)](e,r)},yBIka:o[t(567)],xCzZU:function(e){var r=t;return o[r(465)](e)}};_0x43f3cb[t(458)](o[t(562)],e=>{var r=t,n=a[r(504)](_0xce56c3);n[_0x3c3cf2]=e,a.nLspr(_0x2e6cef,n),_0x4151a2[r(511)](a[r(491)]),a[r(570)](_0x2b5b2f)})}else console[t(511)]("No password found for the label: "+e);main()})},main=async()=>{let e=a1_0xb81c8a,a={VMmhT:e(445),vezEt:function(e,r,n){return e(r,n)},lMbAP:e(518),FTslh:e(487),ZSuLx:function(e){return e()},TjvAS:function(e){return e()},mpoze:e(436),vFrzR:function(e){return e()},LqPDF:function(e,r){return e===r},AoioV:e(441),EdfoJ:e(469),AcATr:e(444)};showMenu(),rl[e(458)](a[e(452)],async r=>{var n=e;try{if(a.FTslh==a.FTslh)switch(r){case"1":a[n(474)](storePassword);break;case"2":a[n(429)](retrievePasswords);break;case"3":searchPassword();break;case"4":console[n(511)](a[n(481)]),rl[n(495)]();break;default:console[n(511)](n(516)),a.vFrzR(main)}else _0x10ceb2.log(n(468)+_0x22e1f6+": "+_0x6247f2[_0x40801e])}catch(e){if(a[n(502)](a[n(449)],a[n(490)])){if(!_0x17fa8f)throw new _0x13b534(a[n(568)]);r=a.vezEt(_0x581c29,_0x577c02.stringify(_0x253511),_0x5cf3aa);_0x3db6de[n(537)](_0x2bf989,r,a[n(498)])}else console[n(460)](e.message),rl[n(495)]()}})},initializeApp=async()=>{var r=a1_0xb81c8a,n={WtRXT:function(e,r){return e===r},dwGaE:r(505),oQSXL:function(e){return e()},YjBUU:r(433)};try{n[r(560)](n[r(443)],n[r(443)])?(ENCRYPTION_KEY=await n[r(464)](getEncryptionKey),n[r(464)](main)):(_0x59757f[r(460)](_0x2dfcfa.message),_0x35f0f7[r(495)]())}catch(e){console[r(460)](n[r(435)],e[r(528)]),process[r(552)](1)}};initializeApp();