【发布时间】:2017-01-12 10:17:35
【问题描述】:
首先,我要感谢这个社区,它让我目前正在使用 c# 编程。我边走边自学,并没有真正进行任何正式培训,所以你们帮了大忙。
我正在编写一个小型应用程序,旨在使升级我公司销售的一件设备的日常任务变得更容易一些。通常这些设备没有连接到互联网,我们需要远程连接到客户的计算机以完成通过 SSH 连接到他们的设备的任务,并在登录后运行一些命令来进行升级。我希望向客户分发一个应用程序,以及一个加密密钥(在我们这边生成),其中包含有关他们正在升级的选项的信息,以及确保密钥只能在他们的设备上使用的序列号。
在我的应用程序中,我使用 SharpSSH 来完成初始 SSH 连接,效果很好。但是我担心的是,我们设备上的 root 密码实际上是一个相当简单的密码。这些设备本身的功能相当有限,因此如果他们自己安装了它,人们将无能为力,但是如果他们安装了该设备,他们可以根据需要升级自己的设备和其他任何人的设备。
所以我的问题是,我怎样才能最好地“隐藏”我的脚本中的密码,这样任何有反编译器的人都不容易搜索到它?
现在代码很简单,
SshStream ssh = new SshStream(ip, "easytoguessuser", "notsocomplexpassword");
所以我想将密码隐藏在某个地方,但我想不出一种方法意味着拥有反编译器的人不能只打开 exe 并查找密码在哪里,或者我是如何得出密码的从别的什么...
【问题讨论】: