最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)簡易的加密、解密字符串工具類實例

 更新時間:2015年08月19日 12:52:47   作者:北風(fēng)其涼  
這篇文章主要介紹了C#實現(xiàn)簡易的加密、解密字符串工具類,涉及C#字符串加密與加密的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#實現(xiàn)簡易的加密、解密字符串工具類。分享給大家供大家參考。具體如下:

這里的類CypherHelper是一個用于加密、解密字符串的工具類~~~,適合于方便地加密、解密長度較短的密碼等字符串(C#里面已經(jīng)有了庫System.Security.Cryptography,對于比較長的字符串或流來說是一個更好的選擇)

類CypherHelper代碼:

class CypherHelper
{
 /// <summary>
 /// 加密字符串
 /// </summary>
 /// <param name="word">被加密字符串</param>
 /// <param name="key">密鑰</param>
 /// <returns>加密后字符串</returns>
 public static string Encrypt(string word, string key)
 {
  if (!System.Text.RegularExpressions.Regex.IsMatch(key, "^[a-zA-Z]*$"))
  {
   throw new Exception("key 必須由字母組成");
  }
  key = key.ToLower();
  //逐個字符加密字符串
  char[] s = word.ToCharArray();
  for (int i = 0; i < s.Length; i++)
  {
   char a = word[i];
   char b = key[i % key.Length];
   s[i] = EncryptChar(a, b);
  }
  return new string(s);
 }
 /// <summary>
 /// 加密單個字符
 /// </summary>
 /// <param name="a">被加密字符</param>
 /// <param name="b">密鑰</param>
 /// <returns>加密后字符</returns>
 private static char EncryptChar(char a, char b)
 {
  int c = a + b - 'a';
  if (a >= '0' && a <= '9') //字符0-9的轉(zhuǎn)換
  {
   while (c > '9') c -= 10;
  }
  else if (a >= 'a' && a <= 'z') //字符a-z的轉(zhuǎn)換
  {
   while (c > 'z') c -= 26;
  }
  else if (a >= 'A' && a <= 'Z') //字符A-Z的轉(zhuǎn)換
  {
   while (c > 'Z') c -= 26;
  }
  else return a; //不再上面的范圍內(nèi),不轉(zhuǎn)換直接返回
  return (char)c; //返回轉(zhuǎn)換后的字符
 }
 /// <summary>
 /// 解密字符串
 /// </summary>
 /// <param name="word">被解密字符串</param>
 /// <param name="key">密鑰</param>
 /// <returns>解密后字符串</returns>
 public static string Decrypt(string word, string key)
 {
  if (!System.Text.RegularExpressions.Regex.IsMatch(key, "^[a-zA-Z]*$"))
  {
   throw new Exception("key 必須由字母組成");
  }
  key = key.ToLower();
  //逐個字符解密字符串
  char[] s = word.ToCharArray();
  for (int i = 0; i < s.Length; i++)
  {
   char a = word[i];
   char b = key[i % key.Length];
   s[i] = DecryptChar(a, b);
  }
  return new string(s);
 }
 /// <summary>
 /// 解密單個字符
 /// </summary>
 /// <param name="a">被解密字符</param>
 /// <param name="b">密鑰</param>
 /// <returns>解密后字符</returns>
 private static char DecryptChar(char a, char b)
 {
  int c = a - b + 'a';
  if (a >= '0' && a <= '9') //字符0-9的轉(zhuǎn)換
  {
   while (c < '0') c += 10;
  }
  else if (a >= 'a' && a <= 'z') //字符a-z的轉(zhuǎn)換
  {
   while (c < 'a') c += 26;
  }
  else if (a >= 'A' && a <= 'Z') //字符A-Z的轉(zhuǎn)換
  {
   while (c < 'A') c += 26;
  }
  else return a; //不再上面的范圍內(nèi),不轉(zhuǎn)換直接返回
  return (char)c; //返回轉(zhuǎn)換后的字符
 }
}

Main函數(shù)調(diào)用示例

class Program
{
 static void Main(string[] args)
 {
  //1.加密
  string a = CypherHelper.Encrypt("TsybiusLee1234", "Galatea");
  Console.WriteLine("加密:TsybiusLee1234 → " + a);
  //2.解密
  string b = CypherHelper.Decrypt(a, "Galatea");
  Console.WriteLine("解密:" + a + " → " + b);
  Console.ReadLine();
 }
}

運行結(jié)果

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

最新評論

中西区| 河池市| 彭阳县| 敖汉旗| 六盘水市| 林口县| 苗栗市| 祁东县| 资源县| 深州市| 慈溪市| 鄢陵县| 布尔津县| 商城县| 孝昌县| 南郑县| 奉化市| 海丰县| 江孜县| 大渡口区| 隆林| 三河市| 潜江市| 凤庆县| 长白| 勐海县| 巨野县| 闻喜县| 聂荣县| 无棣县| 洛浦县| 襄汾县| 静乐县| 丹棱县| 民勤县| 岳普湖县| 杭锦后旗| 左贡县| 图片| 阆中市| 大城县|