小编Adi*_*Aji的帖子

加密包含unicode的字符串会导致无法识别的字符

我正在尝试在C#中加密字符串:

static public string Encrypt(char[] a)
{
    for (int i = 0; i < a.Length; i++)
    {
        a[i] -= (char)(i + 1);
        if (a[i] < '!')
        {
            a[i] += (char)(i + 20);
        }
    }
    return new string(a);
}
Run Code Online (Sandbox Code Playgroud)

现在,当我输入这个字符串时:

"Qui habite dans un ananas sous la mer?".
Run Code Online (Sandbox Code Playgroud)

加密结果如下:

`Psf3c[[ak[3XT`d3d\3MYKWIZ3XSXU3L@?JAMR`
Run Code Online (Sandbox Code Playgroud)

在@之后,那里有一个无法辨认的角色.我不知道它是怎么到达的,我不知道为什么.

如果我尝试解密它(使用这种方法:)

static public string Decrypt(char[] a)
{
    for (int i = 0; i < a.Length; i++)
    {
        a[i] += (char)(i + 1);
        if ((a[i] - 20) - i <= '!') …
Run Code Online (Sandbox Code Playgroud)

c# encryption caesar-cipher

2
推荐指数
1
解决办法
708
查看次数

标签 统计

c# ×1

caesar-cipher ×1

encryption ×1