0

我收到了包含 ASCII Char 0 ( http://localhost/Test_Authentication.asp?token=%13%23%02%00%01%01%00%01%01%05%02%02%03%00%02%02%0A%0A%0A%0A%0A%0A048 ) 的编码查询字符串,当我检索到该值时,该字符串在该位置 ( %00) 终止。我应该如何解决这个问题?

以下是我的代码。

Response.CharSet = "utf-8";
Session.CodePage=65001;

var strToken = (Request.QueryString("token").Count > 0)?Request.QueryString("token")(1):"";
4

1 回答 1

1

%00 是空字符的 ascii。我怀疑这就是为什么此时字符串被终止的原因。

我建议您使用不同的格式或方法来创建您的散列令牌,也许是一种将其创建为十六进制值的方法,例如;

B73A21FBCE3921E5DD0C935AB4D710DD

MD5 哈希通常表示为 32 位十六进制数。这对于在查询字符串中传递会更加友好。

于 2012-04-03T14:54:04.083 回答