在c#中加密字符串

时间:2017-12-15 13:50:11

标签: c# .net

我想加密以下字符串。

的myString = “adhbegadhjmqadguvaadgaegadguvabdh”;

string[] varEnclist = {
  "adg", "beh", "cfi", "jmp", "knq", "lor", "svy", "twz", "uxa", "aeg", 
  "bdh", "cdi", "jnp", "kmq", "lmr", "swy", "tvz", "uva", "afg", "bfh",
  "cei", "jop", "koq", "lnr", "sxy", "txa", "uwa", "ajk", "adh", "beg",
  "cfg", "jmq", "knp", "lop", "adi", "bei", "cfh", "hio"};

string[] varDataList = {
  "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", 
  "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_", "0", 
  "1", "2", "3", "4", "5", "6", "7", "8", "9", "."};

varEnclistMystring中的任何数据都表示我必须将其替换为varDataList

  

例如。如果在adg中找到Mystring,则表示我必须将其替换为a   public string Encrypt(string Mystring="adhbegadhjmqadguvaadgaegadguvabdh") { string[] varEnclist = {"adg", "beh", "cfi", "jmp", "knq", "lor", "svy", "twz", "uxa", "aeg", "bdh", "cdi", "jnp", "kmq", "lmr", "swy", "tvz", "uva", "afg", "bfh", "cei", "jop", "koq", "lnr", "sxy", "txa", "uwa", "ajk", "adh", "beg", "cfg", "jmq", "knp", "lop", "adi", "bei", "cfh", "hio" }; string[] varDataList = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "." }; string strReplaced = ""; int i; for(i=0; i9 { strReplaced = StrValue.Replace(varEnclist [i], varDataList [i]); } return strReplaced; }

我必须这样做。 下面是我的代码,但它不起作用。

ProgID

3 个答案:

答案 0 :(得分:1)

扫描(通过3个字母的块),查找(相应的字母)和Concat(最后的字符串):

  using System.Linq;

  ...

  string[] varEnclist = { 
     "adg", "beh", "cfi", "jmp", "knq", "lor", "svy", "twz", "uxa", "aeg",
     "bdh", "cdi", "jnp", "kmq", "lmr", "swy", "tvz", "uva", "afg", "bfh",
     "cei", "jop", "koq", "lnr", "sxy", "txa", "uwa", "ajk", "adh", "beg",
     "cfg", "jmq", "knp", "lop", "adi", "bei", "cfh", "hio" };

  string[] varDataList = { 
     "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
     "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_", "0",
     "1", "2", "3", "4", "5", "6", "7", "8", "9", "." };

  ...

  string Mystring = "adhbegadhjmqadguvaadgaegadguvabdh";

  string result = string.Concat(Enumerable
    .Range(0, Mystring.Length / 3)
    .Select(index => Mystring.Substring(index * 3, 3))
    .Select(code => varDataList[Array.IndexOf(varEnclist, code)]));

  Console.WriteLine(result); 

结果:

 1214arajark

如果要加密,可以使用相同的方法:

 string encrypted = string.Concat(result
   .Select(item => varEnclist[Array.IndexOf(varDataList, item.ToString())]));

 Console.WriteLine(ecnrypted); 

结果:

 adhbegadhjmqadguvaadgaegadguvabdh

答案 1 :(得分:0)

尝试类似的东西;

int index = 0;
foreach (var s in varEnclist)
{
   Mystring = Mystring.Replace(s, varDataList[index]);
   index++;
}

<强>输出:

1214arajark

答案 2 :(得分:-1)

我不确定您的具体要求是什么,希望这有助于

        string Mystring = "adhbegadhjmqadguvaadgaegadguvabdh";
        StringBuilder sb = new StringBuilder(Mystring);
        sb.Replace("dfd", "a");
        sb.Replace("fee", "b");
        sb.ToString();

或者这个会帮助

        string[] str = { "dfd", "dfdf" };
        string[] abc = { "a", "b" };
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.Length; i++)
        {
            str[i] = abc[i];
            sb.Append(str[i]);
        }
        sb.ToString();