C# Base64编码函数

C# 中的 Base64 编码函数可以将二进制数据转换为文本字符串,这个编码过程是可逆的,可以通过反解码函数将 Base64 字符串还原成原始二进制数据。本文将详细介绍 C# 中 Base64 编码函数的用法,包括编码方法、解码方法、示例等内容。

Base64 编码方法

在 C# 中使用 Base64 编码方法可以通过 System.Convert 类和 System.Text.Encoding 类提供的静态方法进行。

1. 使用 System.Convert 类中的静态方法实现 Base64 编码

System.Convert 类中的 ToBase64String 方法可以将一个包含字节序列的数组转换为一个 Base64 字符串表示形式。

byte[] bytes = new byte[] { 1, 2, 3, 4, 5 };
string base64Str = System.Convert.ToBase64String(bytes);
Console.WriteLine(base64Str); // 输出:AQIDBAU=

2. 使用 System.Text.Encoding 类中的静态方法实现 Base64 编码

System.Text.Encoding 类中的 GetBytes 方法可以将字符串编码为一个包含 8 位无符号整数的字节数组,并且可以选择使用 Base64 编码算法进行编码。

string originalString = "hello world";
byte[] originalBytes = System.Text.Encoding.UTF8.GetBytes(originalString);
string base64Str = System.Convert.ToBase64String(originalBytes);
Console.WriteLine(base64Str); // 输出: aGVsbG8gd29ybGQ=

Base64 解码方法

与 Base64 编码方法一样,Base64 解码方法在 C# 中同样可以使用 System.Convert 类和 System.Text.Encoding 类提供的静态方法实现。

1. 使用 System.Convert 类中的静态方法实现 Base64 解码

System.Convert 类中的 FromBase64String 方法可以将一个 Base64 字符串表示形式转换为一个包含字节序列的数组。

string base64Str = "AQIDBAU=";
byte[] bytes = System.Convert.FromBase64String(base64Str);
foreach (byte b in bytes)
{
    Console.Write("{0} ", b); // 输出: 1 2 3 4 5
}

2. 使用 System.Text.Encoding 类中的静态方法实现 Base64 解码

System.Text.Encoding 类中的 GetBytes 方法同样支持使用 Base64 算法进行解码。

string base64Str = "aGVsbG8gd29ybGQ=";
byte[] base64Bytes = System.Text.Encoding.UTF8.GetBytes(base64Str);
byte[] bytes = System.Convert.FromBase64String(System.Text.Encoding.UTF8.GetString(base64Bytes));
string originalString = System.Text.Encoding.UTF8.GetString(bytes);
Console.WriteLine(originalString); // 输出:hello world

示例

下面是一个使用 Base64 编码和解码函数的示例程序:

using System;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            string originalString = "hello world";
            byte[] originalBytes = System.Text.Encoding.UTF8.GetBytes(originalString);

            // Base64 编码
            string base64Str = System.Convert.ToBase64String(originalBytes);
            Console.WriteLine(base64Str);

            // Base64 解码
            byte[] base64Bytes = System.Text.Encoding.UTF8.GetBytes(base64Str);
            byte[] bytes = System.Convert.FromBase64String(System.Text.Encoding.UTF8.GetString(base64Bytes));
            string decryptedString = System.Text.Encoding.UTF8.GetString(bytes);
            Console.WriteLine(decryptedString);
        }
    }
}

输出:

aGVsbG8gd29ybGQ=
hello world

以上就是 C# 中 Base64 编码函数的详细介绍,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Base64编码函数 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • Java StackOverflowError详解

    Java StackOverflowError详解 什么是StackOverflowError? StackOverflowError是在Java虚拟机内存不足时抛出的错误之一,通常是由于方法调用栈溢出而引起的。当我们递归调用一个方法时,每次调用都会将方法运行时需要的一些数据压入调用栈中,包括方法参数、局部变量以及返回地址等,当调用栈已经满了而仍需要入栈时就…

    Java 2023年5月27日
    00
  • Java反射,泛型在Json中的运用

    【Java反射,泛型在Json中的运用】 1. Java反射在Json中的运用 1.1 什么是Java反射 Java反射是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法。对于任意一个对象,都能够调用它的任意方法和属性。这种动态获取对象信息以及动态调用对象方法的功能称为Java反射。 1.2 在Json中使用Java反射 在Java开发中,J…

    Java 2023年5月26日
    00
  • SpringBoot整合Mybatis与druid实现流程详解

    SpringBoot整合Mybatis与druid实现流程详解 1. 项目搭建 首先,我们需要在项目中引入以下依赖: <!– SpringBoot Web Starter –> <dependency> <groupId>org.springframework.boot</groupId> <arti…

    Java 2023年5月20日
    00
  • Java实现字符串匹配(基于正则)

    Java实现字符串匹配最常用的方式就是基于正则表达式,这种方式可以基于一些简单的字符模式来匹配或查找字符串中的子串,非常方便实用。下面是Java实现字符串匹配(基于正则)的完整攻略: 步骤1: 导入正则表达式包 在Java中,我们需要import java.util.regex.*来导入正则表达式相关的包。 import java.util.regex.*;…

    Java 2023年5月26日
    00
  • JAVA常用API总结与说明

    JAVA常用API总结与说明 1. String类 String类是Java中常用的字符串类,提供了一系列字符串的操作方法。 以下是String类常用的方法: length():返回字符串的长度 charAt(int index):返回指定索引位置的字符 substring(int beginIndex, int endIndex):返回指定区间的子字符串 …

    Java 2023年5月23日
    00
  • jsp页面中显示word/excel格式的文档的方法

    要在JSP页面中显示Word/Excel格式的文档,一般使用POI这个Java库来读取和处理这些文件,然后在JSP页面中显示处理后的内容。具体步骤如下: 引入POI库 首先需要在项目中引入POI库,可以通过Maven等方式进行引入。以下是Maven中引入POI和其依赖的pom.xml配置代码: <dependency> <groupId&g…

    Java 2023年6月15日
    00
  • 详解java平台解析协议相关备忘

    详解Java平台解析协议相关备忘 本文主要介绍在Java平台下解析常见网络协议的相关备忘,方便开发者进行网络编程。 TCP协议解析 1.建立连接 使用Java Socket进行TCP连接,代码示例如下: Socket socket = new Socket("localhost", 8080); 其中,”localhost”为连接的服务器…

    Java 2023年5月27日
    00
  • javac -encoding 用法详解

    使用 javac 命令编译 Java 代码时,通过 -encoding 参数可以指定源代码文件的编码方式。以下是 javac -encoding 的详细用法攻略。 什么是编码方式? 在计算机科学中,编码方式是用于描述如何将文字、符号等字符转换为计算机可以识别和处理的二进制数据的规则集。不同的编码方式将不同的符号与二进制序列对应。常见的编码方式包括 UTF-8…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部