当前位置: 首页 > 知识库问答 >
问题:

为什么在使用Convert将字符串转换为字节[]时。FromBase64String(…)我不能放两个相同的字符?[副本]

奚和光
2023-03-14

为什么在使用Convert将字符串转换为字节[]时。FromBase64String(…)我不能放两个相同的字符?

比如我有

 class User
{
    public string Login { get; set; }
    public byte[] Password { get; set; }

}
class Program
{
    static void Main(string[] args)
    {
        var login = Console.ReadLine();
        var password = Console.ReadLine();
        var bytePass = Convert.FromBase64String(password);

        var user = new User() { Login = login, Password = bytePass };

    }
}

当我把两个相同的字符(例如testt)作为密码字符串时,它会引发异常

系统FormatException:“输入不是有效的Base-64字符串,因为它包含非Base-64字符、两个以上的填充字符或填充字符中的非法字符。”

如果我想要将多个相同字符转换为byte[]的字符串,我应该怎么做?这有可能吗?

共有1个答案

公良理
2023-03-14

字符串testt不是Base64编码的字符串。Base64字符串的长度必须是4的倍数。

要将常规字符串转换为字节序列,请使用编码。GetBytes方法。

 类似资料:
  • 问题内容: Oracle Java Community网站上的一篇文章提供了以下方法作为示例(对于JPA Converter,但这并不相关): 将String y强制转换为String val有什么用?有正当的理由吗? 原始文章:JPA的新增功能 问题答案: 这样的转换是完全没有必要的。我可以想象那是以前 但是后来参数类型更改为,而作者只是忘了删除强制类型转换。

  • 问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为

  • 如何将字符串(字节字符串)转换为字节(字节字符串),而不必手动复制和粘贴字符串并在其前面放置b?

  • 问题内容: 我正在使用以下代码从外部程序获取标准输出: 方法返回一个字节数组: 但是,我想将输出作为普通的字符串使用。这样我就可以像这样打印它: 我认为这就是方法的用途,但是当我尝试使用它时,我又得到了相同的字节数组: 如何将字节值转换回字符串?我的意思是,使用”batteries”而不是手动进行操作。我希望它与Python 3兼容。 问题答案: 你需要解码bytes对象以产生一个字符串:

  • 我正试图通过对象运行字符串列表。当我单独做的时候,它会工作,但是当我把它作为一个字符串传递时,它就不工作了。我该如何解决这个问题? 是什么导致第一个示例不起作用?变量数据是否将其视为faq。“IntegrationItem1”而不是faq.IntegrationItem1?