C# Base64编码函数

yizhihongxing

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代码是如何被CPU狂飙起来的

    Java代码是如何被CPU狂飙起来的 当Java代码被编译成字节码之后,需要被虚拟机解释执行。对于常见的Oracle JDK,虚拟机的实现是HotSpot VM。HotSpot VM为了提升程序的性能,包含了即时编译器(JIT)。 在执行Java代码的过程中,HotSpot VM会对一些热点代码进行监控,这些热点代码包括被频繁调用和执行时间较长的方法或循环等…

    Java 2023年5月19日
    00
  • spring boot整合mybatis+mybatis-plus的示例代码

    下面我给您讲解一下“spring boot整合mybatis+mybatis-plus的示例代码”的完整攻略。 步骤1 – 添加依赖 首先,我们需要在 pom.xml 中添加以下依赖: <!– Spring Boot Mybatis Starter –> <dependency> <groupId>org.mybati…

    Java 2023年5月20日
    00
  • 基于PHP实现栈数据结构和括号匹配算法示例

    让我分步为您讲解“基于PHP实现栈数据结构和括号匹配算法示例”的详细攻略。 1. 栈数据结构的实现 栈是一种简单的数据结构,它可以在常量时间内进行插入和删除操作,被称为“先进后出”的数据结构,其中最新保存的元素始终处于栈的顶部。 在 PHP 中可以用数组实现一个栈结构,例如以下的代码块: class Stack { protected $stack; pub…

    Java 2023年5月26日
    00
  • emoji表情与unicode编码互转的实现(JS,JAVA,C#)

    Emoji表情和Unicode编码是两种不同的字符编码方式,它们的字符集和编码方式不同,但它们之间是可以互相转换的。本文主要介绍在JS、JAVA、C#中实现Emoji表情和Unicode编码互转的实现攻略,包含几个常用的实例。 JS实现 在JS中,可以使用String.prototype.charCodeAt()和String.fromCharCode()方…

    Java 2023年5月20日
    00
  • Java C++实现相同MD5加密算法的方式

    要在Java和C++中实现相同的MD5加密算法,需要借助各自语言中现成的库或函数来实现。以下是详细过程: 1. Java中的MD5加密 Java中实现MD5加密可以使用标准库中的java.security.MessageDigest类。使用该类需要以下步骤: 步骤一:声明MessageDigest对象 MessageDigest md = MessageDi…

    Java 2023年5月19日
    00
  • Java Apache Commons报错“MalformedPatternException”的原因与解决方法

    “MalformedPatternException”是Java的Apache Commons类库中的一个异常,通常由以下原因之一引起: 无效的正则表达式:如果正则表达式无效,则可能会出现此错误。在这种情况下,需要检查正则表达式以解决此问题。 无效的模式:如果模式无效,则可能会出现此错误。在这种情况下,需要检查模式以解决此问题。 以下是两个实例: 例1 如果…

    Java 2023年5月5日
    00
  • 拳皇(Java简单的小程序)代码实例

    拳皇(Java简单的小程序)是一个基于Java Swing的小游戏应用程序,主要通过键盘控制实现不同的角色之间的战斗和移动。下面是该小程序实现的完整攻略,包含基本的代码结构、功能实现和示例说明。 代码结构 拳皇小程序的代码结构主要包括以下几个部分: Main.java:程序入口,包含主函数和窗口初始化等功能。 GamePanel.java:游戏主面板,包含游…

    Java 2023年5月23日
    00
  • Java NIO写大文件对比(win7和mac)

    Java NIO(New I/O,也就是非阻塞 I/O)是 Java 1.4 提供的一种新的 I/O API,使得 Java 的 I/O 操作更加高效灵活。在处理大文件时,Java NIO 也有着比传统的 I/O 更好的性能优势。本文将介绍如何使用 Java NIO 写大文件,并对比在 Windows 7 和 macOS 系统上的性能差异。 准备工作 在开始…

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