当前位置: 首页 > 面试题库 >

如何在nodejs控制台中隐藏密码?

魏臻
2023-03-14
问题内容

我想隐藏密码输入。我在stackoverflow中看到许多答案,但如果按Backspace键,则无法验证值。条件返回false。

我尝试了几种解决方案来覆盖该函数,但是如果按退格键,则会出现缓冲区问题,我看到了不可见的字符\b

我按:“ A”,退格键,“ B”,我的缓冲区中有:“ \ u0041 \ u0008 \ u0042”(toString()=’A \ bB’),而不是“
B”。

我有 :

var readline = require('readline');

var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question("password : ", function(password) {
    console.log("Your password : " + password);
});

问题答案:

覆盖应用程序的readline接口的_writeToOutput:https
:
//github.com/nodejs/node/blob/v9.5.0/lib/readline.js#L291

要隐藏密码输入,可以使用:

第一个解决方案:“密码:[=-]”

按下触摸时此解决方案具有动画:

password : [-=]
password : [=-]

html" target="_blank">代码 :

var readline = require('readline');

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.stdoutMuted = true;

rl.query = "Password : ";
rl.question(rl.query, function(password) {
  console.log('\nPassword is ' + password);
  rl.close();
});

rl._writeToOutput = function _writeToOutput(stringToWrite) {
  if (rl.stdoutMuted)
    rl.output.write("\x1B[2K\x1B[200D"+rl.query+"["+((rl.line.length%2==1)?"=-":"-=")+"]");
  else
    rl.output.write(stringToWrite);
};

此序列“ \ x1B [2K \ x1BD”使用两个转义序列:

  • Esc [2K:清除整行。
  • Esc D:将窗口向上移动/滚动一行。

要了解更多信息,请阅读:http :
//ascii-table.com/ansi-escape-sequences-vt-100.php

第二解决方案:“密码:****”

var readline = require('readline');

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.stdoutMuted = true;

rl.question('Password: ', function(password) {
  console.log('\nPassword is ' + password);
  rl.close();
});

rl._writeToOutput = function _writeToOutput(stringToWrite) {
  if (rl.stdoutMuted)
    rl.output.write("*");
  else
    rl.output.write(stringToWrite);
};

您可以使用以下方式清除历史记录:

rl.history = rl.history.slice(1);


 类似资料:
  • 问题内容: 我正在用Python写一个IRC机器人。 我希望为Linux和Windows制作独立的二进制文件。主要是希望机器人启动时隐藏控制台窗口,而用户则不能看到该窗口。 我该怎么办? 问题答案: 只需将其保存为.pyw扩展名即可。这将阻止控制台窗口打开。 在Windows系统上,没有“可执行模式”的概念。Python安装程序会自动将.py文件与python.exe关联,以便双击Python文件

  • 问题内容: 我有一个简单的Python脚本,该脚本使用selenium和webdriver在Chrome窗口中打开Facebook并自动登录。当我运行它时,Chromedriver控制台窗口将打开并保持打开状态,即使在整个程序执行完毕后,也要自行关闭它。 有没有办法隐藏此控制台窗口?我曾尝试为脚本保留一个“ .pyw”扩展名,但这无济于事,因为它不是脚本的控制台窗口,而是我希望隐藏的Chromed

  • 我用tkinter创建了简单的GUI,然后我用cx_Freeze创建了。exe文件,当我打开。exe文件时,它显示的是控制台而不是GUI窗口。我想要的是隐藏控制台,只是为了显示GUI窗口。 null setup.py文件代码:

  • 问题内容: 如何从firebug控制台或显示ajax调用的任何内容隐藏ajax请求? 问题答案: 进行JSONP调用。JSONP调用不是真正的ajax请求(因为它们不使用对象,而只是将脚本标签注入DOM)。但是它们不会在Firebug中显示。

  • 问题内容: 我写了一些如下的语句: 两者都会弹出一个控制台。 如何阻止它弹出控制台? 问题答案: 该过程可以隐藏控制台窗口: 或设置创建标志以禁用创建窗口: 上面仍然是一个控制台进程,具有用于控制台I / O的有效句柄(通过调用所返回的句柄进行验证)。它只是没有窗口,也不继承父级控制台(如果有)。 你可以通过强制孩子完全没有控制台来走得更远: 在这种情况下,子级的标准句柄(即GetStdHandl

  • 如何隐藏控制台窗口? 我在gui应用程序中使用无头chrome和selenium从一个网页上抓取数据 启动应用程序时,打开控制台窗口,然后显示chromedriver的日志。 启动应用程序时,有没有办法隐藏chromedriver登录控制台? OS:windows10 python:3.6.3 selenium 3.8.0 chromedriver:2.33 Google Chrome canar