`
jin8000608172
  • 浏览: 140704 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

验证敏感词汇

阅读更多
package com.xxxpiao.core.member.service.impl.util;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;

import com.xxxpiao.common.service.exception.RegisterException;
import com.xxxpiao.common.service.exception.errorcode.MemberErrorTable;
import com.xxxpiao.common.utils.RegexUtils;

/**
 * 敏感词处理方法
 * @project coreService
 * @author szk
 * @date 2010-11-27
 * Copyright (C) 2010-2012 www.2caipiao.com Inc. All rights reserved.
 */
@Component
@Lazy(value=false)
public class WordCensor  {

	private static  final Logger LOGGER = LoggerFactory.getLogger(WordCensor.class);
    /**保存敏感词的列表*/
	private static List<String> wordCensor = new ArrayList<String>();
	/**过滤词文件名*/
	private static final String FILTER_FILE_NAME = "sensitivewords.txt";
	
	static{
	        ClassLoader loader = WordCensor.class.getClassLoader();
	        InputStream wordFilterInput = loader.getResourceAsStream(FILTER_FILE_NAME);
	        String line;
	        BufferedReader reader =  null;
	        try {
	            reader =  new BufferedReader(new InputStreamReader(wordFilterInput, "UTF-8"));
	            while ((line = reader.readLine()) != null) {
	                if (StringUtils.isNotBlank(line)){
	                    wordCensor.add(line);
	                }
	            }
	        } catch (FileNotFoundException e) {
	            LOGGER.warn("敏感词文件没有找到:"+e.getMessage());
	        } catch (IOException e) {
	            LOGGER.warn("读取敏感词文件IO异常:"+e.getMessage());
	        }finally{
	            IOUtils.closeQuietly(reader);
	            IOUtils.closeQuietly(wordFilterInput);
	        }
	}

	/**
	 * 敏感词验证
	 * 
	 * @param account
	 * @create_time 2010-12-2 上午11:03:01
	 */
	public static void validwordcensor(String account) {
		List<String> list = wordCensor;
		if (list != null) {
			for (String key : list) {
				if (RegexUtils.isChinese(key)) {
					if (account.indexOf(key) != -1) {
						throw new RegisterException(MemberErrorTable.ACCOUNT_ILLEGALITY);
					}
				} else {
					if (account.equals(key)) {
						throw new RegisterException(MemberErrorTable.ACCOUNT_ILLEGALITY);
					}
				}
			}
		}
	}

	/**
	 * 将敏感字符替换为*
	 * 
	 * 2011-6-23
	 */
	public static  String replaceWordCensor(String text){
		List<String> list = wordCensor;
		String replacedStr = text;
        if (text!=null && list != null) {
            for (String key : list) {
                if (text.indexOf(key)!=-1) {
                	replacedStr =  replacedStr.replaceAll(key, "*********");
                  
                }
            }
        }
        return replacedStr;
	}
	
	
}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    敏感词汇组

    在IT行业中,尤其是在网络安全和数据保护领域,"敏感词汇组"是一个重要的概念。这个话题主要涉及到如何在Web应用程序中有效地实现敏感词过滤功能,以防止恶意用户利用这些词汇进行攻击或者发布不适当的内容。以下是...

    漂亮表单验证和密码强度的验证

    2. **复杂性**:鼓励用户使用大小写字母、数字和特殊字符的组合,避免使用常见词汇。 3. **不包含个人信息**:禁止使用生日、姓名等容易被猜到的信息。 4. **唯一性**:确认密码不是已有的用户名或其他敏感信息。 ...

    jq验证器插件.zip

    4. **评论系统**:限制用户输入的字符数,过滤敏感词汇,确保内容的合规性。 综上所述,jQuery验证器插件是前端开发中不可或缺的工具,它可以帮助我们构建更健壮、更用户友好的表单验证机制。合理运用它的各项功能...

    systemc系统设计和验证的方法学

    SystemC的流程和应用方面,包括系统描述、基本建模结构、事件和动态敏感性、进程定义、细化以及验证等。在细化方面,TLM可以细化为RTL模型。SystemC在功能验证方面提供了强大的工具和库,比如一般结构、激励生成、...

    PHP快速获取用户提交的敏感信息插件.rar

    该插件的作用类似于垃圾信息预处理机制,在用户提交信息之前可以先通过此插件对其进行检测,如发现敏感词汇及需屏蔽词汇的话可以记录这些词汇并且进一步采取后续逻辑处理。 2.插件说明: 插件接受一个用户输入的...

    afl_注册信息合规性验证

    它可能需要限制长度,禁止使用特殊字符,不允许为空,且不能包含敏感词汇。通过正则表达式可以有效地实现这些规则,例如,只允许字母、数字和下划线,长度在4到20个字符之间。 2. **密码验证**:密码安全是用户账户...

    jquery 表单验证

    同时,也可以检查评论中是否包含敏感词汇,避免不良信息的传播。 "使用说明.txt"文件可能包含了如何在实际项目中应用这些验证方法的具体步骤和示例代码,包括如何绑定事件,如何编写验证逻辑,以及如何展示错误提示...

    JavaScript表单验证大全

    alert("包含敏感词汇"); a.b.focus(); return false; } } ``` 这里定义了一个 `test()` 函数,它检查输入字段 `b` 是否包含了特定的关键字,如 "***" 或 "****"。如果包含,则弹出警告并阻止表单提交。 #### 8....

    易语言PHP网络验证

    MySQL数据库在网络验证中扮演了关键角色,存储用户的用户名、密码等敏感信息,通过安全的数据库连接,客户端向服务器发送验证请求,服务器端的PHP脚本接收到请求后,从数据库检索对应的数据进行匹配。 接下来,PHP...

    js 表单验证代码全集

    为了防止敏感词汇的出现,可以设置一个关键字过滤器。 ```javascript function test() { if ((a.b.value.indexOf("***") == 0) || (a.b.value.indexOf("****") == 0)) { alert("包含敏感词汇"); a.b.focus(); ...

    表单验证大全表单验证大全

    3. **结果反馈:**如果包含敏感词汇,则弹出提示信息,并将焦点设置回输入框。 #### 八、两次输入密码是否相同 **知识点概述:** 此功能用于确保用户两次输入的密码一致,有助于提高账户安全性。 **示例代码:** `...

    js表单验证

    alert("输入包含敏感词汇!"); a.b.focus(); return false; } } ``` 此代码段会在用户尝试提交表单时检查输入是否包含指定的关键字,如果包含,则显示警告信息,并阻止表单提交。 #### 8. 密码验证:确认密码...

    PHP对特殊词汇的过滤

    在PHP编程中,有时我们需要对用户输入的数据进行过滤,以防止恶意代码或敏感词汇的出现。这在处理用户提交的内容,如评论、论坛帖子或搜索查询时尤其重要。标题"PHP对特殊词汇的过滤"涉及的就是这个关键的安全实践。...

    一个注册表,验证用户名,上传文件,等等分享(带sql)

    这通常包括检查用户名是否已被其他人使用,是否包含特殊字符或敏感词汇,以及长度限制。`checkusername.php`可能就是实现这个功能的脚本,它可能通过查询数据库来检查用户名的可用性。 3. **验证码(Verification ...

    Javascript表单验证大全

    在论坛或评论区,可能会遇到需要屏蔽某些敏感词汇的情况。 **代码示例**: ```javascript function test() { if ((a.b.value.indexOf("***") != -1) || (a.b.value.indexOf("****") != -1)) { alert("输入包含了...

    易语言界面设计-登录验证

    在IT行业中,易语言是一种基于汉语词汇编程的编程环境,旨在降低编程的门槛,使得更多的人能够轻松地学习和编写程序。"易语言界面设计-登录验证"这一主题聚焦于如何利用易语言来构建用户界面,并实现登录验证功能。...

    MDeamon 用内容过滤器过滤敏感信息

    本教程的目标是教会MDeamon用户如何设置内容过滤器,从而自动识别并处理包含特定敏感词汇的邮件。具体而言,我们将通过设置规则来拦截含有“工资”、“薪酬”和“年终奖”等关键词的邮件,并向发件人发送通知后删除...

    Javascript验证大全

    alert("不允许输入敏感词汇"); a.b.focus(); return false; } } ``` 8. 密码一致性验证:确保用户两次输入的密码一致,可以使用以下方法: ```html ()"&gt; 提交"&gt; function checkPasswordMatch() { var ...

Global site tag (gtag.js) - Google Analytics