string参数过滤非法字符(UTF8解码)

本文介绍了一种简单有效的过滤非法字符的方法,通过使用HttpUtility.UrlDecode进行解码,并移除潜在的危险字符如script、<>及/等,确保输入的安全性。

命名空间:using System.Web;

代码:

        /// <summary>

        /// 过滤非法字符
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string ClearInput(string input)
        {
            return HttpUtility.UrlDecode(input.Trim(), Encoding.UTF8).Trim().ToLower().Replace("script", "").Replace("/", "").Replace("<", "").Replace(">", "");
        }
#### 如何移除Base64字符串中的非法字符 要清除Base64字符串中的非法字符,可以采用正则表达式过滤掉不符合标准的字符。根据Base64编码规则[^2],合法字符包括字母 `A-Z`、`a-z`、数字 `0-9` 以及特殊符号 `+` 和 `/`,并且可能会有填充字符 `=` 出现在字符串末尾。 以下是一个完整的实现方案: --- ### 1. **使用正则表达式清理非法字符** 可以通过 Python 的 `re` 模块定义一个正则模式来保留合法字符并删除其他所有字符: ```python import re def clean_base64(base64_str): # 定义合法的Base64字符集 pattern = r"[^A-Za-z0-9+/=]" # 使用正则表达式替换非法字符为空字符串 cleaned_str = re.sub(pattern, "", base64_str) return cleaned_str ``` --- ### 2. **示例代码** 假设输入的 Base64 字符串包含一些非法字符(如 `$`, `%`, `\t` 等),我们可以调用上述函数对其进行清洗: ```python if __name__ == "__main__": corrupted_base64 = "SGVsbG8gd29ybGQgCgoKCjEzNTIkeDIlMw==" print(f"Original String: {corrupted_base64}") cleaned_string = clean_base64(corrupted_base64) print(f"Cleaned String: {cleaned_string}") # 尝试解码清洗后的字符串 try: decoded_bytes = base64.b64decode(cleaned_string) print(f"Decoded Output: {decoded_bytes.decode('utf-8')}") except Exception as e: print(f"Error during decoding: {e}") ``` 运行结果将是去除所有非法字符后的有效 Base64 数据,并尝试将其解码回原始数据。 --- ### 3. **注意事项** - 如果经过清理后仍然无法成功解码,则可能是由于原字符串被篡改过多而导致其不再符合 Base64 编码结构。 - 清洗过程中不会改变原有合法字符的位置或顺序,因此即使存在部分损坏的情况也能够最大程度恢复可用信息。 --- ### 4. **扩展讨论** 对于某些特定应用场景下的自定义 Base64 表格或者 URL-safe 版本等问题,在构建匹配规则时还需要考虑这些变体所引入的新字符集合[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值