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日

相关文章

  • JSP中param标签用法实例分析

    即将为您讲解JSP中param标签的用法。 什么是param标签 param标签是JSP中一个自定义标签,用于向一个JSP标记库动态传递参数。该标签必须被包含在定义了该库的标记文件中,以便在库的使用者中提供一些参数化的功能。 param标签的使用方法 下面是param标签的通用语法: <jsp:param [name="parameter_n…

    Java 2023年6月15日
    00
  • Java Scala偏函数与偏应用函数超详细讲解

    Java Scala偏函数与偏应用函数 前言 本文将详细讲解Java Scala中的偏函数与偏应用函数,供大家参考与学习。 偏函数 Partial Function 偏函数(Partial Function)是指仅对一部分输入定义的函数。偏函数的意义在于,某些情况下,我们并不关心所有的输入内容,只是针对其中的某些数据进行处理。 举个例子,我们需要对整数数组进…

    Java 2023年5月26日
    00
  • 利用Spring Data MongoDB持久化文档数据的方法教程

    当使用Spring Data MongoDB进行文档数据持久化时,首先需要创建一个实体类,该实体类中需要包含一些注释以告知Spring Data MongoDB如何将该实体类映射到MongoDB集合。 例如,考虑以下实体类: @Document(collection = "myCollection") public class MyEnt…

    Java 2023年5月20日
    00
  • java的Hibernate框架报错“CacheException”的原因和解决方法

    当使用Java的Hibernate框架时,可能会遇到“CacheException”错误。这个错误通常是由于以下原因之一引起的: 缓存配置错误:如果您的缓存配置错误,则可能会出现此错误。在这种情况下,需要检查您的缓存配置以解决此问题。 缓存操作错误:如果您的缓存操作错误,则可能会出现此错误。在这种情况下,需要检查您的缓存操作以解决此问题。 以下是两个实例说明…

    Java 2023年5月4日
    00
  • Java使用lambda自定义Arrays.sort排序规则说明

    前言 Java是一门面向对象的编程语言,对象与对象之间的交互及其相关的逻辑一直都是Java编程中的一个重点。 Java中的集合类是十分重要的,它们包含了大量的数据结构及算法,帮助Java开发者在日常开发工作中处理各种数据结构问题,其中最常用的是数组。 Java的Arrays类提供了sort方法,使我们可以对数组进行排序,不过Arrays.sort方法提供的排…

    Java 2023年5月26日
    00
  • Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL数据库的方法

    当我们需要在Spring Boot应用中使用Kotlin通过JdbcTemplate连接MySQL数据库时,可以参考以下步骤: 1. 添加依赖 我们需要在pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifa…

    Java 2023年6月16日
    00
  • java+io+swing实现学生信息管理系统

    Java+IO+Swing实现学生信息管理系统 学生信息管理系统是一款常见的管理工具,它可以帮助学校、老师或管理员轻松地管理学生的信息。本篇攻略将会使用Java语言结合IO和Swing技术来实现学生信息管理系统。 1. 项目搭建 首先打开你喜欢的IDE,选择新建Java项目,并添加Swing库。 然后新建一个Main类,它将作为程序的入口点。接下来,创建一个…

    Java 2023年5月24日
    00
  • 用C#把文件转换为XML的代码

    首先需要了解的是,将文件转换为XML的过程涉及到两个方面的知识点:文件的读取和XML文档的创建。下面是将文件转换为XML的完整攻略: 1. 读取文件内容 使用C#需要导入System.IO命名空间,其中包含了StreamReader和FileStream等类,对于小文件,可以使用File.ReadAllText方法读取整个文件的内容。但是,对于大文件,推荐使…

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