首页 > 编程语言 >C# 简单实现对字符串加密和解密

C# 简单实现对字符串加密和解密

时间:2023-09-26 20:47:12浏览次数:37  
标签:return string C# 解密 加密 byte public

 C# 简单实现对字符串加密和解密有两种方式,供参考:

 1 /// <summary>
 2 /// 编译字符串
 3 /// </summary>
 4 /// <param name="strUnicode"></param>
 5 /// <returns></returns>
 6 public static string FromUnicodeToAscii(string strUnicode)
 7 {
 8   
 9     try
10     {
11         if (String.IsNullOrEmpty(strUnicode))
12         {
13             return String.Empty;
14         }
15         UnicodeEncoding Unicode = new UnicodeEncoding();
16 
17         int byteCount = Unicode.GetByteCount(strUnicode);
18         byte[] origbytes = new byte[byteCount];
19         origbytes = Unicode.GetBytes(strUnicode);
20 
21         StringBuilder strDecoded = new StringBuilder();
22         for (int i = 0; i < byteCount; i++)
23         {
24             byte b = origbytes[i];
25             //translate each byte into two digits of hexa.
26             strDecoded.Append(b.ToString("X2"));
27             //chDest[i] =  Convert.ToChar(b);
28         }
29         return strDecoded.ToString();
30     }
31     catch (Exception err)
32     {
33         Console.WriteLine(err.Message+" "+err.StackTrace);             
34         return "*********异常";
35     }
36 }
37 /// <summary>
38 /// 反编译字符串
39 /// </summary>
40 /// <param name="strAscii"></param>
41 /// <returns></returns>
42 public static string FromAsciiToUnicode(string strAscii)
43 {
44 
45     try
46     {
47         if (String.IsNullOrEmpty(strAscii))
48         {
49             return String.Empty;
50         }
51         StringBuilder strNew = new StringBuilder();
52         UnicodeEncoding Unicode = new UnicodeEncoding();
53         byte[] currbytes = new byte[2];
54         for (int i = 0; i < strAscii.Length; i = i + 4)
55         {
56             for (int j = 0; j < 2; j++)
57             {
58                 //each two hexa digits are becoming one byte
59                 currbytes[j] = Convert.ToByte(strAscii.Substring(i + j * 2, 2), 16);
60             }
61             strNew.Append(Unicode.GetString(currbytes));
62         }
63         return strNew.ToString();
64     }
65     catch (Exception err)
66     {
67     
68        
69         return "******异常";
70     }
71 }
 1     /// <summary>
 2     /// 字符串简单加密
 3     /// </summary>
 4     public class EncodeAndDecode
 5     {
 6         /// <summary>
 7         /// Base64加密
 8         /// </summary>
 9         /// <param name="codeName">加密采用的编码方式</param>
10         /// <param name="source">待加密的明文</param>
11         /// <returns></returns>
12         public static string EncodeBase64(Encoding encode, string source)
13         {
14             string enstring = "";
15             byte[] bytes = encode.GetBytes(source);
16             try
17             {
18                 enstring = Convert.ToBase64String(bytes);
19             }
20             catch
21             {
22                 enstring = source;
23             }
24             return enstring;
25         }
26  
27         /// <summary>
28         /// Base64加密,采用utf8编码方式加密
29         /// </summary>
30         /// <param name="source">待加密的明文</param>
31         /// <returns>加密后的字符串</returns>
32         public static string EncodeBase64(string source)
33         {
34             return EncodeBase64(Encoding.UTF8, source);
35         }
36  
37         /// <summary>
38         /// Base64解密
39         /// </summary>
40         /// <param name="codeName">解密采用的编码方式,注意和加密时采用的方式一致</param>
41         /// <param name="result">待解密的密文</param>
42         /// <returns>解密后的字符串</returns>
43         public static string DecodeBase64(Encoding encode, string result)
44         {
45             string decode = "";
46             byte[] bytes = Convert.FromBase64String(result);
47             try
48             {
49                 decode = encode.GetString(bytes);
50             }
51             catch
52             {
53                 decode = result;
54             }
55             return decode;
56         }
57  
58         /// <summary>
59         /// Base64解密,采用utf8编码方式解密
60         /// </summary>
61         /// <param name="result">待解密的密文</param>
62         /// <returns>解密后的字符串</returns>
63         public static string DecodeBase64(string result)
64         {
65             return DecodeBase64(Encoding.UTF8, result);
66         }
67     }

 

标签:return,string,C#,解密,加密,byte,public
From: https://www.cnblogs.com/soliang/p/17731087.html

相关文章

  • odoo xml文件中&出现报错问题:Unescaped & or nonterminated character/entity referen
    解决方式1:将“&”改写为“&amp;” 解决方案2:使用CDATA区:当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅度降低,这时应该使用CDATA段。在CDATA段中出现的“ < ”、“ > ”、“ " ”、“ ’ ”、“&”都无需使用转义字符,但CDATA段中不能包含“]]>”,......
  • 4、scatter作用
    scatter_add是torch_scatter库中的一个函数,用于对输入张量进行聚合操作,并将聚合结果累加到指定位置上。具体来说,scatter_add函数的使用方法如下:fromtorch_scatterimportscatter_add#定义输入张量input_tensor=torch.tensor([[1,2,3],[4,5,6],[7,8,9]])#定......
  • 无涯教程-JavaScript - T.DIST函数
    描述T.DIST.2T函数返回两尾学生的t分布。学生的分布用于小样本数据集的假设检验。使用此函数代替t分布的临界值表。语法T.DIST(x,deg_freedom,cumulative)争论Argument描述Required/OptionalXThenumericvalueatwhichtoevaluatethedistribution.RequiredDeg......
  • 【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
    问题描述启用AppServiceLocalGit部署,在Clone代码库到本地时候,卡在Clone‘xxxxxx’......一动不动的问题? 问题解答因为GitClone没有任何日志输出,所以在其他IDE上也尝试GitAppService的代码库。在intellj的git操作,报错“unabletoaccess,SSLcertificateproblem:una......
  • 【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
    问题描述启用AppServiceLocalGit部署,在Clone代码库到本地时候,卡在Clone‘xxxxxx’......一动不动的问题? 问题解答因为GitClone没有任何日志输出,所以在其他IDE上也尝试GitAppService的代码库。在intellj的git操作,报错“unabletoaccess,SSLcertificateproble......
  • Csproj 编译输出引用Nuget包内的资源文件
    组内有个组件,对外部Nuget包Microsoft.Web.WebView2封装。因为WebView2对自身有一些资源文件依赖,资源文件需要随编译输出到启动目录,WebView2直接加载启动目录下相应文件。 如果上层应用同时引用Microsoft.Web.WebView2,自然会输出对应的资源文件。但应用层很容易遗漏对Microsof......
  • Unbiased Knowledge Distillation for Recommendation
    目录概UnKD代码ChenG.,ChenJ.,FengF.,ZhouS.andHeX.Unbiasedknowledgedistillationforrecommendation.WSDM,2023.概考虑流行度偏差的知识蒸馏,应用于推荐系统.UnKDMotivation就不讲了,感觉不是很强烈.方法很简单,就是将按照流行度给items进行......
  • Adobe全家桶2015-2024全套Win+Mac最新爱国版软件吐血整理(含AI绘画版本)
    爆肝整理,最全的设计类软件大全切记!!!先转存,随时都有可能被和谐。Windows系统版本截图:Mac系统版本截图:网盘下载:切记!!!先转存,随时都有可能被和谐。链接:https://pan.quark.cn/s/3a964f54ea82提取码:ZHYMAdobe全家桶软件目录、最新版本号(部分未及时更新,请进网盘查看):Adobe20......
  • RGB LCD drive
    modulelcd_drive#(parameterVBP=31,//OKparameterVFP=11,//OKparameterVSW=3,//OKparameterVDP=480,parameterHBP=41,//okparameterHFP=114,//okparameterHSW=4,//okparameterHDP=640)(clk_i,//时钟输......
  • Codeforces Round 898 (Div. 4)
    这是我的vp,不是正真的contest. A:不想多说,读者应该可以做到的!!! B:让g=product(移除掉0的a):如果有多过1个0答案肯定是0。如果只是有1个0答案就是g。没有0,答案就是max(g/a[i]*(a[i]+1))任何i。 C:没有仔细想那个profit的formula.手打表,sum就可以了。 D:就是双......