首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在dart控制台应用程序中禁用标准回显以进行密码输入

如何在dart控制台应用程序中禁用标准回显以进行密码输入
EN

Stack Overflow用户
提问于 2013-01-30 04:10:27
回答 3查看 399关注 0票数 4

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

代码语言:javascript
复制
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;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-19 04:15:12

这现在已经实现了。

请参阅Stdin.echoMode

代码语言:javascript
复制
import 'dart:io';

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

Stack Overflow用户

发布于 2013-01-30 05:05:11

在将tty控件添加到dart:io之前,这是不可能的。在此期间,我建议:

代码语言:javascript
复制
stty -echo
dart ./password.dart
stty echo

我在这里打开了一个bug:https://code.google.com/p/dart/issues/detail?id=8190

票数 4
EN

Stack Overflow用户

发布于 2022-02-05 20:56:05

dart DCli软件包提供了执行此操作的选项。

https://pub.dev/packages/dcli

代码语言:javascript
复制
import 'package:dcli/dcli.dart';

void main() {
  var password = ask('password', hidden: true);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14591347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档