2017-05-27 63 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