繁体   English   中英

使用Base64String编码解码的字符串

[英]Encode decoded string with Base64String

我正在学习如何编码和解码字符串。 这是一种将削皮器文本解码为我在网上发现的纯文本的方法。

public static string Decode(string chiperText)
{
    byte[] numArray = Convert.FromBase64String(chiperText);
    byte[] numArray1 = new byte[(int)numArray.Length - 1];
    byte num = (byte)(numArray[0] ^ 188);
    for (int i = 1; i < (int)numArray.Length; i++)
    {
        numArray1[i - 1] = (byte)(numArray[i] ^ 188 ^ num);
    }
    return Encoding.ASCII.GetString(numArray1);
}

我的问题是我不知道如何编码为原始状态。 我尝试这种方法,但它不起作用。

public static string Encode(string plainText)
{
    byte[] bytes = Encoding.ASCII.GetBytes(plainText);

    byte[] results = new byte[(int)bytes.Length - 1];

    byte num = (byte)(bytes[0] ^ 188);
    for (int i = 1; i < bytes.Length; i++)
    {
        results[i - 1] = (byte)(bytes[i] ^ 188 ^ num);
    }

    return Convert.ToBase64String(results);
}

尽管我完全同意SLaks的评论,即以上内容不构成您应使用的任何加密类型,但是以下过程将生成您要解密的“加密”数据:

public static string Encode(string plainText)
{
    byte[] numArray = System.Text.Encoding.Default.GetBytes(plainText);
    byte[] numArray1 = new byte[(int)numArray.Length + 1];
    // Generate a random byte as the seed used
    (new Random()).NextBytes(numArray1);
    byte num = (byte)(numArray1[0] ^ 188);
    numArray1[0] = numArray1[0];
    for (int i = 0; i < (int)numArray.Length; i++)
    {
        numArray1[i + 1] = (byte)(num ^ 188 ^ numArray[i]);
    }
    return Convert.ToBase64String(numArray1);
}

请不要在一秒钟内考虑将其用作“加密”敏感数据的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM