asp.net get请求base64解密报错问题

刚开始没编码,使用encodeURIComponent进行了编码,但是后台解码+会被解析为空格,最后使用hex解决

public class HexConverter
{
    /// <summary>
    /// 转换十六进制字符串到字节数组
    /// </summary>
    /// <param name="msg">待转换字符串</param>
    /// <returns>字节数组</returns>
    public static byte[] HexToByte(string msg)
    {
        msg = msg.Replace(" ", "");//移除空格
 
        //create a byte array the length of the
        //divided by 2 (Hex is 2 characters in length)
        byte[] comBuffer = new byte[msg.Length / 2];
        for (int i = 0; i < msg.Length; i += 2)
        {
            //convert each set of 2 characters to a byte and add to the array
            comBuffer[i / 2] = (byte)Convert.ToByte(msg.Substring(i, 2), 16);
        }
 
        return comBuffer;
    }
 
    /// <summary>
    /// 转换字节数组到十六进制字符串
    /// </summary>
    /// <param name="comByte">待转换字节数组</param>
    /// <returns>十六进制字符串</returns>
    public static string ByteToHex(byte[] comByte,bool isNeedSpace=false)
    {
        StringBuilder builder = new StringBuilder(comByte.Length * 3);
        foreach (byte data in comByte)
        {
            builder.Append(Convert.ToString(data, 16).PadLeft(2, '0').PadRight(3, ' '));
        }
        var res =  builder.ToString().ToUpper();
        if (isNeedSpace)
        {
            return res;
        }

        return res.Replace(" ", "");
    }
 
    static string ByteToString(byte[] InBytes) 
    {
        string StringOut="";
        StringOut = System.Text.Encoding.ASCII.GetString(InBytes);
        return StringOut; 
    }
    
    static byte[] StringToByte(string InString) 
    {
        string[] ByteStrings;
        ByteStrings = InString.Split(" ".ToCharArray());
        byte[] ByteOut;
        ByteOut = new byte[ByteStrings.Length-1];
        for (int i = 0;i==ByteStrings.Length-1;i++) 
        {
            ByteOut[i] = Convert.ToByte(("0x" + ByteStrings[i]));
        } 
        return ByteOut;
    }
}
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假装我不帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值