c# - 比较 2 个字符串时如何将一个值替换为另一个值?

标签 c# asp.net cobol transoft

我的用户在数据库中保存了一个密码字段,例如“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/

相关文章:

c# - Web 表单中的 Treeview 在父节点检查上检查子节点

c# - 从 C# 应用程序运行 powershell

c# - 在 Render() 方法期间错误地写入 writer 时出现困惑

c# - 如何在 Guid 中使用 switch 语句?

c# - 确定缩放图像的适当尺寸的代码

cobol - COBOL 中字符串文字的 SUBSTRING

c# - COM 互操作 : Variable number of parameters

ibm-midrange - 返回从 cobol 到 rpg 的值

c# - 如何在保留琐事的同时替换节点?

c# - 跨 dll 边界访问匿名/动态类型的属性会产生 RuntimeBinderException