通过为每个字母

时间:2017-05-27 14:08:15

标签: c#

如何通过向每个包含字符添加示例char(65)来加密文本框?

示例如果我的文本框包含单词hello,我想添加H + char(65),e + char(67)..等等。

我希望获得某种串行密钥。

我正在使用此代码将随机值带入文本框。

        Guid g = Guid.NewGuid();
        string GuidString = Convert.ToBase64String(g.ToByteArray());
        GuidString = GuidString.Replace("=", "");
        GuidString = GuidString.Replace("+", "");
        GuidString = GuidString.Replace("/", "");
        textBox1.Text = GuidString;

所以从这段代码开始,我的客户端将使用此序列密钥.U3h2FfzjSkeS47XFSyZmQ

所以我想创建一个能够将此序列密钥转换为其他字符的exe。 因此,如果我的客户要求我提供连续密钥,他必须给我这个已经exe给他的序列号,然后把它转发给他,当它将它粘贴到他的exe中以便注册他的产品时。

1 个答案:

答案 0 :(得分:1)

您应该遍历每个字符串字符并为其添加相应的值。您只需添加一个数字,然后将值转换为char。我希望它不会处理项目中任何与加密相关的功能。

string stringToEncode = "Hello";
string encodedString = "";

for (int i = 0; i < stringToEncode.Length; i++)
    encodedString += (char)(stringToEncode[i] + 65);

串行代码主要由数字,大写和小写字母以及有时短划线组成。这意味着每个字符的结果值必须符合ASCII表中的一个指定范围:

  • dash - 45
  • digits - [48 - 57]
  • 大写字母 - [65,90]
  • 小写字母 - [97,122]

解决方案似乎并不优雅,但您必须为字符实现自己的映射(0代表a,1代表b ... 25代表z,依此类推)然后将其映射到ASCII {{3}而不是检查任何一对字符A和B(A + B)是否具有有效值。这样你的+操作后跟%[字母表的长度]将始终产生一个有效值,因为它将是character codes