C#使用base64对字符串进行编码和解码的测试

简介: Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。

今天小刘就为大家分享一篇关于C#使用base64对字符串进行编码和解码的测试,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小刘来看看吧!

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。Base64

需要引入命名空间:

using System;
using System.Text;

解码:

public static string UnBase64String(string value)
{
  if (value == null || value == "")
  {
    return "";
  }
  byte[] bytes = Convert.FromBase64String(value);
  return Encoding.UTF8.GetString(bytes);
}

编码:

public static string ToBase64String(string value)
{
  if (value == null || value == "")
  {
    return "";
  }
  byte[] bytes = Encoding.UTF8.GetBytes(value);
  return Convert.ToBase64String(bytes);
}

测试:

public static void Base64Test(){
string base64string = GameCommon.ToBase64String("aaaa11233Base64编码和解码");
string unbase64string = GameCommon.UnBase64String(base64string);
Debug.Log("base64string : " + base64string);
Debug.Log("unbase64string : " + unbase64string);
}

结果:

总结

///编码
public static string EncodeBase64(string code_type, string code)
  {
      string encode = "";
      byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
        try
          {
                encode = Convert.ToBase64String(bytes);
            }
            catch
            {
                encode = code;
            }
            return encode;
        }
///解码
public static string DecodeBase64(string code_type, string code)
  {
      string decode = "";
        byte[] bytes = Convert.FromBase64String(code);
        try
        {
          decode = Encoding.GetEncoding(code_type).GetString(bytes);
        }
        catch
        {
          decode = code;
        }
        return decode;
  }

调用方法:

var val1 = EncodeBase64("utf-8", "<tr><td> Hello! </td></tr>");
var val2 = DecodeBase64("utf-8", "PHRyPjx0ZD7kvaDlpb3llYo8L3RkPjwvdHI+");

💕Final~

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值

相关文章
|
1月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
2月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
298 0
|
1月前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
142 56
|
2月前
|
测试技术 程序员
关于字符串为空的几个性能测试
本文通过实验对比了两种字符串赋值方式(`string str=&quot;&quot;;` 和 `string str=string.Empty;`)及五种判断字符串是否为空的方法的性能差异。实验结果显示,使用 `string.Empty` 的赋值方式性能更优,且在判断字符串是否为空时,`.Length==0` 方法最为高效,其次是 `str.Equals(&quot;&quot;)` 和 `str==string.Empty` 等方法。文章提供了详细的测试代码和结果分析。
20 3
关于字符串为空的几个性能测试
|
1月前
|
JavaScript
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
31 3
|
1月前
|
存储 C#
C#使用哈夫曼编码实现压缩与解压
C#使用哈夫曼编码实现压缩与解压
26 0
|
2月前
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
77 0
|
3月前
|
开发者 C# Android开发
Xamarin 与 .NET:解锁现代化移动应用开发的超级武器——深入探讨C#与.NET框架如何赋能跨平台应用,实现高效编码与卓越性能
【8月更文挑战第31天】Xamarin 与 .NET 的结合为开发者提供了强大的平台,用于构建现代化移动应用。通过 C# 和 .NET 框架,Xamarin 可以实现一次编写、多平台运行,覆盖 iOS、Android 和 Windows。这种方式不仅节省了开发时间和成本,还保证了应用的一致性和高质量。Xamarin 是一个开源框架,专为跨平台移动应用开发设计,允许使用 C# 语言和 .NET 核心库构建原生应用,并访问各平台特定功能。微软维护的 Xamarin 是 Visual Studio 生态系统的一部分,极大地提高了开发效率。
84 0
|
4月前
|
SQL 开发框架 前端开发
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
|
4月前
|
JSON 数据格式
Navicate数据报错之Bad Request,发送端口测试的时候,使用JSON字符串,而不是Text
Navicate数据报错之Bad Request,发送端口测试的时候,使用JSON字符串,而不是Text