.NET FromBase64String长度

时间:2011-07-20 16:58:08

标签: c# .net

如果我运行Convert.FromBase64String(“test”),我得到的错误是它的长度无效。我正在尝试转换为字节数组,因此我可以对其进行加密,但在较短的字符串上,它会给出长度错误。我尝试使用'='进行rpadding,但无论我放了多少似乎没什么用。

我对此有何选择?

2 个答案:

答案 0 :(得分:7)

如果您有需要存储为二进制文本的文本数据:

  • 通过Encoding.GetBytes()将字符串转换为byte [],例如Encoding.UTF8.GetBytes()
  • 通过Encoding.GetString()将此类文本数据转换回字符串;这要求二进制文件通过此编码(非任意二进制)
  • 是有效的文本数据

如果你有二进制数据,你需要存储为字符串;

  • 使用Convert.ToBase64String()将任意二进制文件转换为字符串
  • 使用Convert.FromBase64String()将这样的字符串转换回二进制文件;这要求字符串是有效的base-64字符串(不是任意字符串)

所以:看看编码。

答案 1 :(得分:6)

Base64是一种将字节序列转换为特殊格式字符串的方法。 "test"不是Base64字符串。

您正在寻找Encoding.UTF8.GetBytes("test")