Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Convert.FromBase64()只允许两个填充字符?(C#)_C#_Base64 - Fatal编程技术网

为什么Convert.FromBase64()只允许两个填充字符?(C#)

为什么Convert.FromBase64()只允许两个填充字符?(C#),c#,base64,C#,Base64,例如,我有一个base64编码的字符串,想对它进行解码。字符串的长度是29个字符,所以很明显,要解码它,我必须使用32个字符 Convert.FromBase64()最多只允许2个填充字符。是否根本不存在因为base64编码而需要3个填充字符的情况?请参考base64定义。它允许通过设计最多2个填充字符。请参阅此处的说明:请参考base64定义。它允许通过设计最多2个填充字符。请参见此处的说明: 字符串的长度为29个字符 字节[]不可能在base64中编码并生成包含29个字符的字符串,而不考虑填

例如,我有一个base64编码的字符串,想对它进行解码。字符串的长度是29个字符,所以很明显,要解码它,我必须使用32个字符


Convert.FromBase64()
最多只允许2个填充字符。是否根本不存在因为base64编码而需要3个填充字符的情况?

请参考base64定义。它允许通过设计最多2个填充字符。请参阅此处的说明:

请参考base64定义。它允许通过设计最多2个填充字符。请参见此处的说明:

字符串的长度为29个字符

字节[]不可能在base64中编码并生成包含29个字符的字符串,而不考虑填充。一个base64字符产生6位。字节[21]有21 x 8=168位=>168/6=28.0 base64个字符,完全匹配。一个字节[22]有22 x 8=176位=>176/6=29.33个字符,四舍五入为30个字符。任何可能的字节[]都不能产生29个字符

因此Convert.FromBase64()正确地告诉您数据是垃圾

字符串的长度为29个字符

字节[]不可能在base64中编码并生成包含29个字符的字符串,而不考虑填充。一个base64字符产生6位。字节[21]有21 x 8=168位=>168/6=28.0 base64个字符,完全匹配。一个字节[22]有22 x 8=176位=>176/6=29.33个字符,四舍五入为30个字符。任何可能的字节[]都不能产生29个字符

因此Convert.FromBase64()正确地告诉您数据是垃圾