2017-05-27 60 views
0

如何通过向每个字符添加示例字符(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; 

所以从这个代码,我为我的客户会采取这种串行key.U3h2FfzjSkeS47XFSyZmQ

所以,我想打一个exe文件,这将能够将此序列密钥转换为其他字符。 因此,如果我的客户会问我串行密钥,他必须给我这个已经exe给他的序列,并发送给他转换后的序列,当它将其粘贴到他的exe文件中以注册他的产品时。

+0

你不怎么清楚你的GUID和用户输入的文字是如何结合在一起的。你能添加一个完整的输入和期望输出的例子吗?你想能够解密生成的结果吗?还是只想随机化一个序列密钥? – Filburt

回答

1

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

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

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

串行代码主要由数字,大写和小写字母以及有时为破折号组成。这意味着所得到的各字符的值必须根据ASCII表落入指定的范围中的一个:

  • 破折号 - 45
  • 位数 - [48 - 57]
  • 大写字母 - [65 ,90]
  • 小写字母 - [97,122]

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

+0

我需要那样的东西。但是我想避免所有奇怪的字符* - {} []等等。或者如果我只能带字母 – Dim