C#实现简易的加密、解密字符串工具类实例

C#实现简易的加密、解密字符串工具类实例,第1张

概述本文实例讲述了C#实现简易的加密解密字符串工具类。分享给大家供大家参考。具体如下:

本文实例讲述了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,"^[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#程序设计有所帮助。

总结

以上是内存溢出为你收集整理的C#实现简易的加密、解密字符串工具类实例全部内容,希望文章能够帮你解决C#实现简易的加密、解密字符串工具类实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1260863.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存