将URL中的base64信息作为查询字符串传递的正确方法?

时间:2019-12-17 07:25:17

标签: javascript asp.net asp.net-mvc web server

我正在通过使用方法base64btoa()中将它们转换为查询字符串来发送一些参数。我只想知道,我是否还需要将结果包装到encodeURI方法中,以将正确的信息传递给URL中的服务器。

例如:

  • http://example.com/{name}-对此,下面哪个是正确的?
  • "http://example.com/" + btoa("some-name")
  • "http://example.com/" + encodeURI(btoa("some-name"))

1 个答案:

答案 0 :(得分:0)

您只需要将字符串转换为Base64。有关C#,请参见this SO answer

  var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
  return System.Convert.ToBase64String(plainTextBytes);

您也可以阅读the reason why we use Base 64

此后无需使用诸如encodeURI之类的方法,那将毫无用处,因为Base 64的所有字符(AZ,az,0-9,=,+)are not escaped

  

encodeURI会转义所有字符,除了:

A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #

顺便说一下,encodeURIbtoa是关于JavaScript的,而不是标签中提到的asp.net。