我的用户在数据库中保存了一个密码字段,例如“0!ZWQ2”。 我必须将我的用户输入密码从“aA1234”解读为“0!ZWQ2”,并将其与数据库中的数据进行比较。
我比较的 2 个字符串是:
“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890” 和 “9setybcpqwiuvxr108daj5'-`~!@#$%^&*()_+|}][{:.?/<>,;ZWQ2@#34KDA”
这样 a = 9 和 0 = A
我如何在 C# 中执行此操作,有什么想法吗?
我只需要从用户输入中获取密码字段并将其打乱为有趣的文本,以便将其与数据库中的数据进行比较。
我们将不胜感激。
问候 艾蒂安
更新:(2009 年 2 月 10 日) 感谢大家的回复。请注意,我确实意识到有更好的方法来处理这个问题。但请注意,我正在创建一个 ASP.NET 应用程序,该应用程序将位于 SharePoint 内部,连接到 Cobol 平面文件数据而不是适当的数据库。使用 Transoft 将我的 ASP.NET(ODBC 连接器)连接到 Cobol 平面文件。所以我必须坚持使用这段代码,并且不会在我的私有(private)网站上使用。我也无法控制何时在 Cobol 中创建密码。
最佳答案
以下是要转换的 Quick、Fast 和 less 代码示例。
C# 代码:
char[] OriginalChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".ToCharArray();
char[] ScrambleChars = "9setybcpqwiuvxr108daj5'-`~!@#$%^&()+|}][{:.?/<>,;ZWQ2@#34KDART".ToCharArray();
string TextToTransfer = "Hello";
string NewText = "";
foreach (char c in TextToTransfer)
{
NewText = NewText + ScrambleChars[Array.IndexOf<char>(OriginalChars, c)].ToString();
}
Console.WriteLine(NewText);
VB 代码:
Dim OriginalChars() As Char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
Dim ScrambleChars() As Char = "9setybcpqwiuvxr108daj5'-`~!@#$%^&()+|}][{:.?/<>,;ZWQ2@#34KDART"
Dim TextToTransfer As String = "Hello"
Dim NewText As String = ""
For Each c As Char In TextToTransfer
NewText += ScrambleChars(Array.IndexOf(OriginalChars, c))
Next
MsgBox(NewText)
关于c# - 比较 2 个字符串时如何将一个值替换为另一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528123/