dart - 如何在 dart 控制台应用程序中禁用 stdin 回显以输入密码

标签 dart dart-io

下面的示例将读取用户的密码,但也会以纯文本形式回显它,有没有办法解决这个问题?

Future<String> promptPassword() {
  var completer = new Completer<String>();
  var stream = new StringInputStream(stdin);
  stdout.writeString("Warning: Password will be displayed here until I find a better way to do this.\n");
  stdout.writeString("Watch your back...\n");
  stdout.writeString("GitHub password for $gituser: ");
  stream.onLine = () {
    var str = stream.readLine();
    stdin.close();
    completer.complete(str);
  };
  return completer.future;
}

最佳答案

现在已经实现了。

Stdin.echoMode

import 'dart:io';

void main() {
  print('Enter password: ');
  stdin.echoMode = false;
  var password = stdin.readLineSync();  
  // Do something with password...
}

关于dart - 如何在 dart 控制台应用程序中禁用 stdin 回显以输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591347/

相关文章:

dart - 高效地将图像文件流式传输到 HttpResponse

ssl - 在打开的套接字上启用 TLS (STARTTLS)

dart - 方法 'toStringDeep' 没有为类 'NumberFormat' 定义

json - 如何在 Flutter 中使用 JSON 正文发出 http DELETE 请求?

flutter - flutter 中的 SuperScript 和 SubScript

Dart:HTTP header 不可变

Flutter 旋转 CupertinoPicker

google-maps - 即使发布 SHA1,谷歌地图也无法发布

websocket - flutter websockets autoreconnect - 如何实现

dart - 如何设置 HTTP 服务器来为具有自己的包依赖项的客户端提供服务?