java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java敏感词转换成符号

Java数据敏感词转换成符号的方法详解

作者:QPiker

在某个论坛下用户可以随意留言,为了防止不法分子在网上任意冲浪,需要对一些敏感词汇进行一些校验,所以这篇文章给大家介绍了Java数据敏感词转换成符号的方法,需要的朋友可以参考下

Java数据敏感词转换成符号

在某个论坛下用户可以随意留言,为了防止不法分子在网上任意冲浪,需要对一些敏感词汇进行一些校验。在这里使用一个高性能敏感词工具sensitive-word。

maven

<!--     数据脱敏   -->
        <dependency>
            <groupId>com.github.houbb</groupId>
            <artifactId>sensitive-word</artifactId>
            <version>0.13.1</version>
        </dependency>

直接使用

	    String str1 = "我他妈的没有说过脏话";
        String replace1 = SensitiveWordHelper.replace(str1);
        System.out.println("原始数据:" + str1);
        System.out.println("脱敏数据:" + replace1);
// 原始数据:我他妈的没有说过脏话
// 脱敏数据:我***没有说过脏话

结合Spring使用

拓展已脱敏词汇

@Component
public class MyWordDeny implements IWordDeny {

    @Override
    public List<String> deny() {
        return Arrays.asList("卢本伟没有开挂","我的发");
    }
}

拓展排除脱敏词汇

@Component
public class MyWordAllow implements IWordAllow {
    @Override
    public List<String> allow() {
        return Arrays.asList("废物","辣鸡");
    }
}

配置类

@Configuration
public class SpringSensitiveWordConfig {

    /**
     * 排除敏感词
     */
    @Resource
    private MyWordAllow myWordAllow;

    /**
     * 拓展敏感词
     */
    @Resource
    private MyWordDeny myWordDeny;


    /**
     * 初始化引导类
     * WordAllows.chains 在原作者词汇数据库进行拓展
     * WordDenys.chains 同上
     */
    @Bean
    public SensitiveWordBs sensitiveWordBs() {
        return SensitiveWordBs.newInstance()
                .wordAllow(WordAllows.chains(WordAllows.defaults(), myWordAllow))
                .wordDeny(WordDenys.chains(WordDenys.defaults(), myWordDeny))
                .init();
    }
}

测试调用

@SpringBootTest(classes = QpikerAdminApplication.class)
@RunWith(SpringRunner.class)
public class SensitiveTest {

    /**
     * 数据脱敏
     */
    @Resource
    private SpringSensitiveWordConfig springSensitiveWordConfig;

    @Test
    public void wordSensitive(){
        String str = "谁他妈的是废物?,我卢本伟没有开挂真的,1824176666,我的发你是小辣鸡";
        System.out.println("原始数据:" + str);
        String replace = springSensitiveWordConfig.sensitiveWordBs().replace(str);
        System.out.println("脱敏数据:" + replace);
    }
}

输出结果

原始数据:谁他妈的是废物?,我卢本伟没有开挂真的,18241766666,他妈的,我的发你是小辣鸡
脱敏数据:谁***是废物?,我*******真的,***********,***,***你是小辣鸡

'废物' 被加到排除脱敏数据中,结果没被替换
'卢本伟没有开挂' 被加到已脱敏数据中,结果被替换

真没有意说脏话,希望各大网友们构建一个文明网络世界。

到此这篇关于Java数据敏感词转换成符号的示例代码的文章就介绍到这了,更多相关Java敏感词转换成符号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文