This question already has an answer here:
Calculate actual data size from Base64 encoded string length
(1 个回答)
8年前关闭。
我需要创建一个长度为 16 的
以下是有效字符串
确定字符串是否为 128 位的算法是什么?还是反复试验是创建此类 128 位字符串的唯一方法?
代码
结果 :
对于 256 位,我们需要 256/6 = 42.66 个字符。这四舍五入为 43 个字符。 [要使其可被 4 整除,请添加
对于 512 位,我们需要 512/6 = 85.33 个字符。这四舍五入为 86 个字符。 [要使其可被 4 整除,请添加
对于 128 位,我们需要 128/6 = 21.33 个字符。这四舍五入为 22 个字符。 [要使其可被 4 整除,请添加
(1 个回答)
8年前关闭。
我需要创建一个长度为 16 的
byte[]
。(在 AES 加密中用作 key 的 128 位字节数组)。以下是有效字符串
"AAECAwQFBgcICQoLDA0ODw=="
确定字符串是否为 128 位的算法是什么?还是反复试验是创建此类 128 位字符串的唯一方法?
代码
static void Main(string[] args)
{
string firstString = "AAECAwQFBgcICQoLDA0ODw=="; //String Length = 24
string secondString = "ABCDEFGHIJKLMNOPQRSTUVWX"; //String Length = 24
int test = secondString.Length;
byte[] firstByteArray = Convert.FromBase64String((firstString));
byte[] secondByteArray = Convert.FromBase64String((secondString));
int firstLength = firstByteArray.Length;
int secondLength = secondByteArray.Length;
Console.WriteLine("First Length: " + firstLength.ToString());
Console.WriteLine("Second Length: " + secondLength.ToString());
Console.ReadLine();
}
结果 :
对于 256 位,我们需要 256/6 = 42.66 个字符。这四舍五入为 43 个字符。 [要使其可被 4 整除,请添加
=
]对于 512 位,我们需要 512/6 = 85.33 个字符。这四舍五入为 86 个字符。 [要使其可被 4 整除,请添加
==
]对于 128 位,我们需要 128/6 = 21.33 个字符。这四舍五入为 22 个字符。 [要使其可被 4 整除,请添加
==
] 最佳答案
16 字节的 base64 字符串将始终为 24 个字符,并在末尾有 ==
作为填充。
(至少当它可以使用 .NET 方法解码时。填充并不总是包含在 base64 字符串的所有用途中,但 .NET 实现需要它。)
关于c# - 如何使用 FromBase64String 创建长度为 16 的字节 [],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14954248/