我的用户在数据库中保存了一个密码字段,例如“ 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平面文件。因此,我必须坚持使用此代码,并且该代码将不会在我的私有网站上使用。我也无法控制何时在Cobol中创建密码。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 以下是要转换的快速,快速和较少代码示例。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) (adsbygoogle = window.adsbygoogle || []).push({}); 09-04 16:25