用c ++编写程序,我想从system()函数发出系统命令,但我不希望用户在可执行文件窗口中看到命令(因为命令包含一个pwd).我需要将用户目录中的文件复制到服务器上,而不允许用户访问服务器或显示pwd.想象有一个执行此操作的.exe是最简单的方法.
例如:
system("FILETRANSFER_SW.exe -pw helloWORLD11!@ C:/temp.txt F:/ tempfolder /")
但是可执行窗口显示此命令,因此无法尝试隐藏密码.
我尝试在程序开头发出系统("@ echo OFF"),但这并没有抑制以下命令,它们仍然显示在可执行文件窗口中.
有什么建议?
谢谢...
在大多数操作系统中,运行进程的命令行被视为公共信息.
因此,在命令行上传递密码是一个非常糟糕的主意.
这个问题有两种常见的解决方法,这两种方法都需要支持被调用的可执行文件:
而不是在命令行上传递用户名/密码,传递包含用户名/密码的文件的名称
从被调用的可执行文件中重新设置正在运行的进程的命令行.
第一个解决方案很简单,普遍可行,第二个解决方案具有竞争条件并且更难实现,因为没有跨平台的方法(在某些操作系统上,更改argv会有所帮助).