如何在 C# 中创建字节数组常量?

pol*_*ram 4 c#

我需要在我的项目中使用 AES 算法,因此我想到为所有要加密的数据提供一个常量密钥。如何在 C# 中创建一个可用作密钥的全局常量字节数组?

Mar*_*zek 5

byte[]您可以创建的唯一常量是以下常量:

const byte[] myBytes = null;
Run Code Online (Sandbox Code Playgroud)

这是因为byte[](或者一般来说每个数组)都是引用类型,并且引用类型常量只能分配有null值(类型除外string,它可以与字符串文字一起使用)。

常量可以是数字、布尔值、字符串或空引用。


ja7*_*a72 5

像这样:

static readonly byte[] key = new byte[] { .. }
Run Code Online (Sandbox Code Playgroud)

或者也许考虑使用字符串,然后使用将其转换为字节Bin64

请注意,该数组是读/写的,因此不是恒定的。

编辑

更好的方法是将常量字符串存储在 Bin64 中并byte[]即时转换回。

class Program
{
    const string key = "6Z8FgpPBeXg=";
    static void Main(string[] args)
    {
        var buffer = Convert.FromBase64String(key);

    }
}
Run Code Online (Sandbox Code Playgroud)