当前位置: 首页 > 后端技术 > Node.js

使用Node.js创建密码生成器

时间:2023-04-03 11:30:32 Node.js

涓€銆佸噯澶囧伐浣?.1鍒涘缓椤圭洰$npminit1.2瀹夎渚濊禆$npmicommanderchalkclipboardy1.3鍒涘缓鍏ュ彛鏂囦欢index.js鍙栦竴涓煂帮細浜嗚Вprocess.argv//index.jsconsole.log(process.argv)鍦ㄧ粓绔墽琛屽懡浠?nodeindex锛屽彲浠ョ湅鍒皃rocess.argv灞炴€ц繑鍥炰竴涓暟缁勶紝閲岄潰鍖呭惈浜嗗惎鍔∟ode.js杩涚▼鏃朵紶鍏ョ殑鍛戒护琛屽弬鏁般€傜涓€涓厓绱犳槸process.execPath銆傜浜屼釜鍏冪礌灏嗘槸姝e湪鎵ц鐨凧avaScript鏂囦欢鐨勮矾寰勩€傚叾浣欏厓绱犲皢鏄换浣曞叾浠栧懡浠よ鍙傛暟銆傛墽琛屽懡浠?nodeindexgenerate绗笁涓弬鏁帮細generate2.缂栧啓鍛戒护琛?.1娣诲姞鐗堟湰鍜屾弿杩?/index.jsconstprogram=require('commander');program.version('1.0.0').description('Simplepasswordgenerator').parse()缁堢鎵ц鍛戒护锛氬彲浠ョ湅鍒皃assgen鐨勮鏄庣户缁墽琛屽懡浠わ細鍙互鐪嬪埌passgen鐨?.2鐗堟湰閰嶇疆瀵嗙爜闀垮害鍛戒护constprogram=require('commander');program.version('1.0.0').description('绠€鍗曞瘑鐮佺敓鎴愬櫒')program.option('-l--length','瀵嗙爜闀垮害').parse()鎺у埗鍙般€俵og(program.opts())缁堢鎵ц鍛戒护锛氬彲浠ョ湅鍒皃assgen鍛戒护鐨勫瘑鐮侀暱搴︾粓绔墽琛屽懡浠わ細2.2瀵嗙爜闀垮害娣诲姞榛樿鍊硷細8program.option('-l--length','lengthofpassword','8').parse()console.log(program.opts())缁堢鎵ц鍛戒护锛氫笉璁剧疆瀵嗙爜闀垮害锛屽彲浠ョ湅鍒颁娇鐢ㄩ粯璁ゅ€?8缁堢鎵ц鍛戒护锛氳缃瘑鐮乴engthto102.3淇濆瓨閰嶇疆瀵嗙爜鍛戒护program.option('-l--length','lengthofpassword','8').option('-s--save','savepasswordtopassword.txt').parse()2.4閰嶇疆瀵嗙爜鏍煎紡锛歯onumber.option('-nn--no-number','removenumbers').parse()缁堢鎵ц鍛戒护锛氶粯璁ゆ湁numbers缁堢鎵ц鍛戒护锛歴etclearnumberpassword2.5閰嶇疆瀵嗙爜鏍煎紡锛歯o-symbols.option('-ns--no-symbols','removesymbols').parse()缁堢鎵ц鍛戒护锛氶粯璁ゆ儏鍐典笅锛岀鍚嶇粓绔墽琛屽懡浠わ細setcleardigitalpassword3.瑙f瀽鍛戒护琛?鍒涘缓瀵嗙爜//index.jsconstprogram=require('commander');constcreatePassword=require('./utils/createPassword')constlog=console.logprogram.version('1.0.0').description('绠€鍗曞瘑鐮佺敓鎴愬櫒')program.option('-l--length','瀵嗙爜闀垮害','8').option('-s--save','淇濆瓨瀵嗙爜鍒皃assword.txt').option('-nn--no-numbers','鍒犻櫎鏁板瓧').option('-ns--no-symbols','removesymbols').parse()const{length,save,numbers,symbols}=program.opts()//鑾峰彇鐢熸垚鐨勫瘑鐮乧onstgeneratedPassword=createPassword(length,numbers,symbols)//杈撳嚭鐢熸垚鐨勫瘑鐮乴og(generatedPassword)createutils/createPassword.js//createPassword.jsconstalpha='qwertyuiopasdfghjklzxcvbnm'constnumbers='0123456789'constsymbols='!@#$%^&*_-=+'constcreatePassword=(length=8,hasNumbers=true,hasSymbols=true)=>{璁╁瓧绗?alphahasNumbers?(chars+=numbers):''hasSymbols?(chars+=symbols):''returngeneratePassword(length,chars)}constgeneratePassword=(length,chars)=>{letpassword=''for(leti=0;i{fs.open(path.join(__dirname,'../','passwords.txt'),'a','666',(e,id)=>{fs.write(id,password+os.EOL,null,'utf-8',()=>{fs.close(id,()=>{console.log(chalk.green('瀵嗙爜淇濆瓨鍒皃asswords.txt'))})})})}module.exports=savePassword缁堢鎵ц鍛戒护锛歄K鐪嬪埌椤圭洰涓敓鎴愪簡passwords.txt鏂囦欢锛屽瘑鐮佸凡缁忎繚瀛樻垚鍔熴€?.閰嶇疆鏈湴npm妯″潡涓哄叏灞€passgen//package.json"preferGlobal":true,"bin":"./index.js",鍦ㄧ粓绔墽琛屽懡浠わ細npmlink鍛戒护锛氬皢npm妯″潡閾炬帴鍒板搴旂殑杩愯椤圭洰锛屾柟渚胯皟璇曟祴璇曟湰鍦版ā鍧?/index.js#!/usr/bin/env鑺傜偣//绗竴琛屾坊鍔犵粓绔墽琛屽懡浠わ細summary:澶у姛鍛婃垚鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鉁岋笍鍙傝€冮摼鎺ワ細http://nodejs.cn/api/process/process_argv.html