同样在2010中,服务端同样方将string转成byte[],和签名后没有通过UnicodeEncoding的GetString转成string之前的byte[]不一致,导致验证一直不通过,什么原因呢?
framework1.0和2.0之后的Unicode编码不是一个东西吗?
4 个解决方案
#1
byte[]转Unicode(UTF-16)是不安全的,原因是有些byte组合不是合法的字符。
byte[]转字符串要用 Convert.ToBase64String和Convert.FromBase64String.
byte[]转字符串要用 Convert.ToBase64String和Convert.FromBase64String.
#2
多谢!按你的方法可以了。03和10都可以通过。
奇怪为什么03转Unicode和byte[]转没问题,到了2010就一直通不过呢?
#3
因为现在没法更新服务端,还是UNICODE转byte[],如果能找到2010转换有问题的具体原因然后有没有其他办法解决呢
#4
#1
byte[]转Unicode(UTF-16)是不安全的,原因是有些byte组合不是合法的字符。
byte[]转字符串要用 Convert.ToBase64String和Convert.FromBase64String.
byte[]转字符串要用 Convert.ToBase64String和Convert.FromBase64String.
#2
多谢!按你的方法可以了。03和10都可以通过。
奇怪为什么03转Unicode和byte[]转没问题,到了2010就一直通不过呢?
#3
因为现在没法更新服务端,还是UNICODE转byte[],如果能找到2010转换有问题的具体原因然后有没有其他办法解决呢