高人帮看,签名串16进制转2进制后base64加密处理,验签时将处理的签名串16进制转2进制后base64解密,签名传比最初多了几个0,不知道为啥?????????
高人帮看,签名串16进制转2进制后base64加密处理,验签时将处理的签名串base64解密后16进制转2进制,签名串比最初多了几个0,不知道为啥?????????
代码如下:
private void test(){
string sign = "75e5e7a5433af0284043943be2ec7e687ad6458ab75375f236f83345c59c21444f1a2595be5f483ea29a3d83e7cb05ef926abcb813aa8ec11bc592f212df82c3e96afa59617c10f297f3f279431323852d45a69d94f055be7b07df877d641ccd97d9fc3ced1b25c342c5e55841d97440d68487bb420d5a6c07f1c159e2c9ad53";
//16进制转2进制后base64加密
sign = Convert.ToBase64String(HexStringToByteArray(sign));
//base64解密后2进制转16进制
sign = ByteArraytoHexString(Convert.FromBase64String(sign));
}
private byte[] HexStringToByteArray(string s)
{
s = s.Replace(" ", "");
byte[] buffer = new byte[s.Length / 2];
for (int i = 0; i < s.Length; i += 2)
buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
return buffer;
}
private string ByteArraytoHexString(byte[] s){
string a ="";
for (int i = 0; i < s.Length; i++)
{
a += Convert.ToString(s[i], 16);
}
return a;
}