c# - 在控制台应用程序中屏蔽密码参数

标签 c# passwords command-line-arguments

我需要用 C# 编写一个控制台应用程序,它将用户名和密码作为输入参数。

示例:mytool.exe --username foo --password bar

这样做很容易,但当然,只要用户输入密码,屏幕上就会显示密码。安全问题。

有没有可能以更安全的方式处理这个问题?但是,以下不是一个选项:

C:\>mytool.exe
Please enter username:
Please enter password:

应用程序应支持在没有用户交互的情况下被调用,例如由 cronjob 定期运行。

最佳答案

详细阐述 SLaks 的评论:

从 stdin(标准输入)获取密码。在您的 cron 作业中,使用输入重定向来传递密码,例如

MyConsoleProgram.exe < C:\SomeSecureFolder\Password.txt

@Ahmed 提出的方法适用于从命令提示符交互使用程序的情况。

您的程序必须在允许访问 Password.txt 的安全上下文中运行,但访问该文件应仅限于有合法访问需求的帐户。

关于c# - 在控制台应用程序中屏蔽密码参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337201/

相关文章:

c# - 异步等待执行Windows Phone 8

c# - double.Parse 和 Double.Parse 有什么区别?

linux - OpenVZ,无法更改密码

java - 使用作为主要参数传递的文件初始化程序 (system.getProperty())

c - 在 C 命令行程序中处理 `argv`

javascript - Protractor - 发送规范/套件名称作为参数

c# - 关于单元测试的好资源?

c# - 将默认值设置为 Html.DropDownListFor

php - 简单登录连接到 MySQL - 有什么问题吗?

python - 计算用户密码和随 secret 码的熵