【问题标题】:byte array (string) to string javascript [duplicate]字节数组(字符串)到字符串javascript [重复]
【发布时间】:2018-05-01 07:17:12
【问题描述】:

我有一个模型,它有一个字节数组作为属性,

public byte[] bytearraytest{ get; set; }

当我通过 javascript GET 请求得到这个模型时,它是一个字符串。

tgwBAQ==

我现在怎么解码?

【问题讨论】:

  • 您想将其转换为具有特定编码的字符串或显示为字节数组?
  • 想转成字符串,因为是ip地址
  • 是base64编码。所以搜索如何解码。

标签: javascript .net asp.net-core


【解决方案1】:

javascript 中的字符串是 Base64 字符串。 您必须在 javascript 中进行 Base64 解码才能访问 de 字节。 试试这个:https://www.w3schools.com/jsref/met_win_atob.asp

【讨论】:

  • 不,不是它,它返回加密的东西 ¶
【解决方案2】:

字符串 tgwBAQ== 是 Base64 编码的(通过结尾处的 == 很容易识别)。要从中获取字节数组,您可以使用:

var bytes = Convert.FromBase64String(value);

如果您直接将其绑定到byte[],则很可能通过拆分字符串来创建char[],即:

[ 't', 'g', 'w', 'B', 'A', 'Q', '=', '=' ]

这对你来说显然没用,所以首先,你需要接受这个值作为一个字符串,这样你就可以把它当作一个字符串来操作。

曾经,你有一个 real byte[] 表示字符串,回到 IP 地址字符串,这取决于之前发生的 Base64 编码首先。例如,如果提供的字符串是通过执行以下操作创建的:

var base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(ipAddress));

然后,您只需将其反转:

var ipAddress = Encoding.UTF8.GetString(Convert.FromBase64String(base64));

但是,如果涉及加密,您需要先使用加密算法和解密“密钥”(实际共享密钥、私钥等)对其进行解密。

总而言之,这里没有足够的信息来帮助您解决最后一个难题,因此您需要更新您的问题,提供有关您正在做什么的更多信息,或者简单地接受此指导并运行自己动手。

【讨论】:

    猜你喜欢
    • 2011-12-14
    • 2016-03-28
    • 2013-08-04
    • 2017-09-21
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2016-03-09
    相关资源
    最近更新 更多