秘密消息 encrypt/decrypt ÅÄÖ

Secret message encrypt/decrypt ÅÄÖ

我需要添加这个 encryptdecrypt code ÄÖÅ 字符,但我不知道如何? 这是我的代码:

Public Function EncryptDecryptString(ByVal inputString As String, Optional ByVal decrypt As Boolean = False) As String
    Dim sourceChars As String = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
    Dim resultChars As String = "36N8lkXruq94jMZInPpshR xHc2mTQb7eYai5vGWDzFdoC0wKSBt1EOgVALJfUy"

    Dim result As String
    If decrypt Then
        result = New String(inputString.Select(Function(c) sourceChars(resultChars.IndexOf(c))).ToArray())
    Else
        result = New String(inputString.Select(Function(c) resultChars(sourceChars.IndexOf(c))).ToArray())
    End If

    Return result
End Function

如果您像这样简单地将瑞典语字符添加到 sourceChars 和 resultChars 中,您当前的代码将工作(以及它对英文字符的工作)。

Dim sourceChars As String = " ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÅabcdefghijklmnopqrstuvwxyz0123456789äöå"
Dim resultChars As String = "äöå36N8lkXruq94jMZInPpshR xHc2mTQb7eYai5ÄÖÅvGWDzFdoC0wKSBt1EOgVALJfUy"

但是,如果输入字符串包含任何您不期望的字符(例如制表符或换行符),您的代码将失败。这里有一个版本的函数,它不会在意外字符上抛出异常,而是简单地使用它而不加密该字符(对于严重的加密,最好得到一个异常)。

Public Function EncryptDecryptString(ByVal inputString As String, Optional ByVal decrypt As Boolean = False) As String
    Dim sourceChars As String = " ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÅabcdefghijklmnopqrstuvwxyz0123456789äöå"
    Dim resultChars As String = "äöå36N8lkXruq94jMZInPpshR xHc2mTQb7eYai5ÄÖÅvGWDzFdoC0wKSBt1EOgVALJfUy"

    Dim result() As Char = inputString
    Dim inChars As String = If(decrypt, resultChars, sourceChars)
    Dim outChars As String = If(decrypt, sourceChars, resultChars)

    For i As Integer = 0 To inputString.Length - 1
        Dim pos As Integer = inChars.IndexOf(inputString(i))
        If pos >= 0 Then result(i) = outChars(pos)
    Next

    Return result
End Function