【问题标题】:mask password string掩码密码字符串
【发布时间】:2014-12-02 09:51:16
【问题描述】:

我正在创建一个 C# windows 窗体应用程序,该应用程序使用 MSTSC 只需单击一下即可将我登录到我的服务器。我在纯文本代码中有我的管理员名称和密码,想知道有没有办法屏蔽/隐藏密码?我将我的代码存储在我的 Dropbox 中,并且希望它不可读。

    private void RunAsAdmin(string server)
    {
        Process rdcProcess = new Process();
        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
        rdcProcess.StartInfo.Arguments = "/generic:TERMSRV/192.168.0.217 /user:" + "Administrator" + " /pass:" + "myPassword";
        rdcProcess.Start();

【问题讨论】:

  • 这在很多层面上都是错误的 :( 欢迎来到 stackoverflow,看看FAQ
  • 可以掩盖它,但实际上不可能隐藏它。要进行屏蔽,您可以使用加密函数,但您还必须在某个地方存储解密密钥。一般来说,将密码存储在源代码中是一个非常糟糕的主意。
  • 谢谢,看来将 PW 放在代码中并不是这样做的方法。我会重新考虑整体。再次感谢

标签: c# passwords


【解决方案1】:

使用这个函数来encrypt和decrypt的密码。

 Public Function ConvertPassword(ByVal sPassword As String)
        Dim sTempChar As String
        Dim iCount As Integer

        For iCount = 1 To Len(sPassword)
            If Asc(Mid$(sPassword, iCount, 1)) < 128 Then
                sTempChar = CType(Asc(Mid$(sPassword, iCount, 1)) + 128, String)
            ElseIf Asc(Mid$(sPassword, iCount, 1)) > 128 Then
                sTempChar = CType(Asc(Mid$(sPassword, iCount, 1)) - 128, String)
            End If

            Mid$(sPassword, iCount, 1) = Chr(CType(sTempChar, Integer))
        Next iCount

        Return sPassword
    End Function

【讨论】:

  • 嗨库马尔。谢谢你。这是VB吗?
  • 嗨库马尔。我使用您的代码作为指南来完成这项工作。再次感谢
【解决方案2】:

我同意将密码存储在文件中是一个坏主意。我有时所做的就是对它进行base64编码。我意识到这是非常不安全的,但我只是想防止普通读者看到密码。

【讨论】:

    【解决方案3】:

    作为答案的一部分,您可以通过设置以下属性来屏蔽密码,例如一个窗体文本框:

    TextBox.UseSystemPasswordChar = true;
    

    【讨论】:

      猜你喜欢
      • 2013-08-29
      • 2022-01-19
      • 1970-01-01
      • 2015-02-23
      • 2020-07-08
      • 2012-12-12
      • 1970-01-01
      • 2017-11-04
      • 2020-04-11
      相关资源
      最近更新 更多