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

 更新时间:2024年03月28日 10:00:02   作者: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敏感词转换成符号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot 使用 Curator 操作 ZooKeeper

    SpringBoot 使用 Curator 操作 ZooKeeper

    本文主要介绍使用 Curator 访问 ZooKeeper 的一些基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • JVM调优OutOfMemoryError异常分析

    JVM调优OutOfMemoryError异常分析

    这篇文章主要为大家介绍了JVM调优OutOfMemoryError异常分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • spring boot application properties配置实例代码详解

    spring boot application properties配置实例代码详解

    本文通过代码给大家介绍了spring boot application properties配置方法,需要的的朋友参考下吧
    2017-07-07
  • Java中的Kafka拦截器详解

    Java中的Kafka拦截器详解

    这篇文章主要介绍了Java中的Kafka拦截器详解,Producer 拦截器(interceptor)是在 Kafka 0.10 版本被引入的,主要用于实现 clients 端的定制化控制逻辑,需要的朋友可以参考下
    2023-11-11
  • struts2通过action返回json对象

    struts2通过action返回json对象

    struts2通过action返回json对象其实很简单的,首先我们需要引入jar包,然后在写一个简单的action就好了,接下来通过本文给大家介绍struts2通过action返回json对象的方法,感兴趣的朋友一起看看吧
    2016-09-09
  • elasticsearch 8.2.3 安装及springboot简单使用

    elasticsearch 8.2.3 安装及springboot简单使用

    这篇文章主要介绍了elasticsearch 8.2.3 安装及springboot简单使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 在springboot中拦截器Filter中注入bean失败问题及解决

    在springboot中拦截器Filter中注入bean失败问题及解决

    这篇文章主要介绍了在springboot中拦截器Filter中注入bean失败问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 浅谈java对象之间相互转化的多种方式

    浅谈java对象之间相互转化的多种方式

    这篇文章主要介绍了浅谈java对象之间相互转化的多种方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Spring Boot 3.1中整合Spring Security和Keycloak的方法

    Spring Boot 3.1中整合Spring Security和Keycloak的方法

    本文介绍在最新的SpringBoot3.1版本之下,如何将Keycloak和Spring Security一起跑起来,文中结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-06-06
  • Flink自定义Sink端实现过程讲解

    Flink自定义Sink端实现过程讲解

    这篇文章主要介绍了Flink自定义Sink端实现过程,在Fink官网中sink端只是给出了常规的write api.在我们实际开发场景中需要将flink处理的数据写入kafka,hbase kudu等外部系统
    2023-01-01

最新评论