国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現簡易的加密、解密字符串工具類實例

2020-01-24 01:31:40
字體:
來源:轉載
供稿:網友

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

這里的類CypherHelper是一個用于加密、解密字符串的工具類~~~,適合于方便地加密、解密長度較短的密碼等字符串(C#里面已經有了庫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的轉換  {   while (c > '9') c -= 10;  }  else if (a >= 'a' && a <= 'z') //字符a-z的轉換  {   while (c > 'z') c -= 26;  }  else if (a >= 'A' && a <= 'Z') //字符A-Z的轉換  {   while (c > 'Z') c -= 26;  }  else return a; //不再上面的范圍內,不轉換直接返回  return (char)c; //返回轉換后的字符 } /// <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的轉換  {   while (c < '0') c += 10;  }  else if (a >= 'a' && a <= 'z') //字符a-z的轉換  {   while (c < 'a') c += 26;  }  else if (a >= 'A' && a <= 'Z') //字符A-Z的轉換  {   while (c < 'A') c += 26;  }  else return a; //不再上面的范圍內,不轉換直接返回  return (char)c; //返回轉換后的字符 }}

Main函數調用示例

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(); }}

運行結果

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金乡县| 东阿县| 葵青区| 东平县| 荆州市| 乃东县| 孝昌县| 彰武县| 陵水| 集安市| 乌鲁木齐市| 泸水县| 杭锦后旗| 富锦市| 大连市| 大同市| 昌平区| 徐闻县| 黔东| 洱源县| 崇礼县| 江安县| 柳河县| 双辽市| 南通市| 扶绥县| 德昌县| 新郑市| 五寨县| 武威市| 亚东县| 崇阳县| 阿坝| 恩平市| 图木舒克市| 柳江县| 廊坊市| 吐鲁番市| 义乌市| 文成县| 沙河市|