自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 资源 (4)
  • 收藏
  • 关注

原创 一文了解TVR和TSI

TVR与TSI在支付安全中的关键作用 TVR(终端验证结果)和TSI(交易状态信息)是EMV支付体系中两个核心状态码。TVR是5字节的二进制寄存器,记录交易验证过程中的40项细节结果,包括脱机数据认证、持卡人验证等关键信息。TSI则是2字节的交易状态日志,记录8个关键步骤的完成情况。在L3认证中,TVR和TSI的处理需符合严格的安全规范:TVR敏感位必须加密存储并在500ms内擦除,TSI需在可信执行环境(TEE)中验证完整性。两者协同工作决定交易走向,2024年标准新增了量子安全算法和AI风险评分等扩展位

2025-08-05 19:55:09 273

原创 一文了解支付应用L3认证

支付应用L3认证是PCI安全标准委员会针对移动支付应用设计的最高级别安全认证,重点保护支付数据在商用移动设备上的安全性。该认证要求应用程序具备越狱/ROOT检测、数据加密保护、反逆向工程等核心技术,并采用TEE等安全环境存储密钥。认证流程包括渗透测试和现场攻击测试,耗时3-6个月,有效期1年。开发实践需关注密钥安全管理、安全输入设计和交易协议规范。2024年新规增加了量子安全算法、AI防护等要求。常见失败案例多与密钥硬编码、内存泄露等问题相关。L3认证是持续的安全工程,需要建立完整的安全开发体系和监控机制。

2025-08-05 19:46:49 740

原创 一文了解CSN

EMV芯片卡支付体系中,CSN(卡片序列号)作为全球唯一物理标识符,具有防克隆、欺诈监控和交易追溯三大安全功能。其双重载体存储(表面蚀刻+芯片逻辑)、终身不变特性构成核心防伪机制,通过终端校验逻辑(如表面与芯片CSN比对)实现实时风险拦截。开发需遵循卡组织传输规范及银联特殊校验规则(如CSN与PAN末位匹配),同时满足PCIDSS安全存储要求。2024年新增量子安全扩展,使CSN成为贯穿物理层到应用层的全栈支付安全DNA,在跨境风控中比PAN更早识别克隆攻击。

2025-07-30 20:12:12 269

原创 一文了解TVR

摘要:EMV芯片卡交易中的TVR(终端验证结果)是一个5字节(40比特)的状态位图,用于记录终端安全验证结果,决定交易是否继续执行。TVR实时生成并存储在EMV标签95中,向发卡行传递终端侧风险状态。其结构包含DDA执行失败、脱机PIN尝试超限等关键比特位,直接影响交易决策(批准/拒绝/转在线)。开发需注意比特操作规范和上送规则,TVR与CVR共同构成完整风控视图。典型应用包括反欺诈拦截和跨境风控,是支付安全的重要传导系统。

2025-07-30 20:04:52 254

原创 aar, aab,apk三种应用格式的区别

Android应用开发中主要涉及三种文件格式:APK是可直接安装的完整应用包;AAB是Google Play专用发布格式,支持动态交付减小体积;AAR是代码资源库,用于复用组件。APK适合所有分发渠道,AAB是Google Play上架必备,AAR则用于模块化开发。2021年起Google Play强制要求新应用使用AAB格式,开发者需根据场景选择合适格式:调试用APK,上架用AAB,组件复用用AAR,合理运用可提升开发效率和应用质量。

2025-07-29 17:27:46 871

原创 一文了解DDA

动态数据认证(DDA)是EMV芯片卡的核心安全机制,通过终端与芯片的密码学挑战-响应验证卡片真伪,有效防止克隆攻击。DDA基于三大安全支柱:物理防克隆(芯片私钥不可导出)、动态绑定签名(含关键交易数据)和实时挑战(每次交易使用新随机数)。相比静态认证(SDA),DDA在安全强度、防克隆能力和响应机制等方面具有显著优势。DDA要求终端支持高级验签算法并定期更新证书库,同时芯片需具备安全区保护私钥。该机制通过动态签名验证芯片物理真实性,使克隆成本极高,从根本上杜绝支付卡伪造。

2025-07-18 17:45:53 312

原创 一文了解EMV

EMV是全球支付卡技术核心标准,由Europay、Mastercard和Visa共同制定。它采用芯片动态加密技术取代磁条卡,通过三大技术支柱(动态数据加密、芯片物理防护、风险控制机制)使支付欺诈率下降75%以上。EMV标准支持脱机/联机交易认证、非接支付等多种模式,全球86%卡支付已采用该技术。中国银联芯片卡发行超90亿张,非接交易占比达75%。作为支付安全基石,EMV实现了从"数据明文传输"到"动态加密对话"的升级,有效终结了磁条卡的高欺诈风险。

2025-07-18 17:30:07 314

原创 一文了解CDA

CDA(组合动态数据认证)是EMV芯片卡交易中最安全的认证机制,通过密码学技术同时验证卡片合法性和交易数据完整性。其核心原理包括:卡片认证防伪卡、数据认证防篡改、每笔交易生成唯一动态签名。CDA必须联机完成,相比SDA/DDA安全性更高。交易流程中,终端和发卡行会对签名进行双重验证。CDA能有效防止伪卡和交易篡改,适用于非接支付、大额交易等高风险场景。终端需配置正确发卡行公钥才能完成CDA验证,否则可能导致交易失败。

2025-07-18 17:24:49 385

原创 一文了解ODA

《EMV芯片卡ODA脱机数据认证机制解析》摘要(149字) ODA是EMV芯片卡在无网络环境下验证卡片真伪的核心技术,包含SDA(静态认证)和DDA(动态认证)两种模式。DDA通过终端随机数挑战和卡片动态签名实现更高安全性,典型应用于公交刷卡(如上海交通卡)、移动POS等弱网场景,单笔交易通常在50美元限额内。技术实现需终端预置发卡行公钥并支持RSA/ECC验签,卡片需生成含随机数的动态签名。ODA虽保障脱机交易效率(响应≤500ms),但不验证交易数据完整性,大额支付仍需联机CDA认证。银联等机构通过设置

2025-07-18 17:21:42 633

原创 简单实现一个接口限流

本文介绍了基于Spring Boot 3.x使用Resilience4j实现接口限流的方法。首先引入resilience4j-spring-boot3依赖,然后在配置文件中定义限流参数,包括请求限制数量、时间窗口和超时时间。通过@RateLimiter注解标记需要限流的方法,并配置fallback降级方法。当接口在设定时间窗口内超过请求限制时,系统会自动调用降级方法实现限流保护。该方法实现简单,配置灵活,能有效防止系统因突发流量过载。

2025-07-17 16:50:47 358

原创 简单手写一个Spring boot starter

SpringBoot自定义Starter开发指南 本文介绍了开发SpringBoot自定义Starter的完整流程。Starter能够简化依赖管理,实现即插即用的功能模块。文章以字符串加前缀功能为例,详细说明了实现步骤:1)创建项目并引入核心依赖spring-boot-autoconfigure;2)编写自动配置类(PrefixAutoConfiguration)和属性类(PrefixProperties);3)实现业务逻辑(PrefixService);4)配置spring.factories或AutoC

2025-07-17 16:13:11 1036

原创 【问题解决】Spring Cloud Gateway配置文件中跨域设置失效

摘要:在SpringCloud+Gateway+Nginx项目中配置跨域时,发现重复配置会导致响应头出现多个相同值。问题原因在于Gateway、Nginx和Controller的跨域配置不能重复,且Gateway配置可能不生效。解决方案包括:1)在Gateway中统一配置跨域参数;2)修改Gateway过滤器确保配置生效;3)移除Nginx和Controller中的跨域配置。通过集中管理跨域配置,可避免响应头重复问题。

2025-07-07 16:25:59 325

原创 Application Identifiers(AIDs) for Card Scheme

1, Visa AID - A00000000310102, Visa Electron AID - A00000000320103, Visa Interlink AID(Debit) - A00000000330104, Visa US Common Debit AID - A00000009808405, Mastercard AID - A00000000410106, Maestro AID - A00000000430607, US Maestro(US Common Debit AID)

2025-05-29 19:59:26 230

原创 [问题解决]:Unable to find image ‘containrrr/watchtower:latest‘ locally

针对Docker部署应用时出现的"Unable to find image"报错,解决方案是配置镜像加速库。具体步骤:1)创建/etc/docker目录;2)新建daemon.json配置文件,添加多个镜像源地址;3)重新加载并重启Docker服务。最后通过docker info验证配置,成功解决问题。该方法通过配置镜像加速源有效解决了因本地镜像缺失导致的部署失败问题。

2025-05-27 17:05:59 703

原创 [问题解决]Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String

SpringBoot集成MyBatis-Plus时出现"Invalid value type for attribute 'factoryBeanObjectType'"错误,原因是mybatis-plus-boot-starter 3.5.5版本引入的mybatis-spring组件版本过低。解决方案是排除原有的低版本依赖,手动引入高版本mybatis-spring 3.0.3。修改pom.xml配置后问题得到解决。

2025-05-27 16:59:54 263

原创 【解决问题】Java2DRenderer生成图片时中文乱码 & Linux安装字体

在使用Java2DRenderer框架将html生成图片时,html中的中文文本在图片上显示框框,即出现了中文乱码。在确认使用正确的字符编码utf-8之后,并且确认了修改成unicode也同样乱码的情况下,找到了真正的原因:Linux服务器少字体。创建fontscale, 如果下面命令执行失败,需要先安装: yum install mkfontscale。清除缓存,并加载字体文件,如果下面字体执行失败,需要先安装:yum install fontconfig。查询系统中已经加载的字体。

2024-12-24 16:40:23 707

原创 【解决问题】template might not exist or might not be accessible by any of the configured Template Resolver

在SpringBoot项目中集成thymeleaf时,通过templateEngine.process("customer", context)获取邮件内容的html。项目在本地编辑器中运行正常,但是打成jar包部署到服务器后,调用方法时报错。templateEngine.process("customer", context) 这段代码需要在同步逻辑里,否则就会出现加载模板失败,也就是上面那个错误的来源。3,如果各个配置都确认是没问题了,需要检查一下代码逻辑。如果是放在多线程里执行,需要移出来。

2024-12-24 15:16:06 1067

原创 【解决问题】jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable java.lang.IllegalAccess

使用JDK17版本,SpringBoot2.4.2集成oAuth2的时候遇到以下问题。2,修改选项, 添加虚拟机选项。在运行的配置里加上以下配置。

2024-11-19 10:45:44 1266

原创 【解决问题】class lombok.javac.apt.LombokProcessor (in unnamed module @0x19ec5357) cannot access class

版本过低导致,我这里没有直接设置版本,使用的默认版本,是1.18.16。在集成oAuth2的时候,mvn clean package时,报错。需要升级到1.18.24及以上即可。

2024-11-19 10:35:36 1125 1

原创 【解决问题】 java.security.PrivilegedActionException: null

在SpringBoot2.4.2中整合oAuth2时出现下面这个问题。

2024-11-19 10:12:56 1115

原创 【问题解决】ERR AUTH <password> called without any password configured for the default user. Are you sure

在redis的conf目录下,删除sentinel.conf文件,再重启redis,启动默认的单机模式即可。看起来是redis配置问题,想起来昨天确实是升级过redis,从3.0版本升级到6.x版本。redis.conf和sentinel.conf文件,启动时会启动sentinel模式,再去检查redis,发现在/etc/redis/conf目录下有两个配置文件。这个是gitlab不支持的,因为目前的配置是单机模式。通过以下命令查看,发现有密码,而且密码是对的。那么不是gitlab的问题。

2024-11-12 14:57:15 1539

原创 Flink输出算子

执行完之后可以去kafka后台查看,会多一个topic(flink-test),并且可以让下游消费者去消费。需要在项目的根目录下创建目录output。执行之后,数据会被写入文件。

2024-11-11 19:34:31 467

原创 netcat工具安装和使用

netcat是为Nmap项⽬编写的,是⽬前分散的Netcat版本系列的经典。它旨在成为可靠的后端⼯具,可⽴即为其他应⽤程序和⽤户提供⽹络连接。

2024-11-11 14:57:18 1042

原创 基于redis实现API接口访问次数限制

日常开发中会有一个常见的需求,需要限制接口在单位时间内的访问次数,比如说某个免费的接口限制单个IP一分钟内只能访问5次。该怎么实现呢,通常大家都会想到用redis,确实通过redis可以实现这个功能,下面实现一下。/*** @date 2024/11/8 上午9:06*//*** 从请求中获取IP当获取不到时,返回null*//*** 获取请求的真实IP,优先级从高到低为:

2024-11-08 11:23:27 1173

原创 SpringBoot+ClickHouse集成

前面已经完成ClickHouse的搭建,创建账号,创建数据库,保存数据库等,接下来就是在SpringBoot项目中集成ClickHouse。

2024-11-05 17:48:34 765

原创 ClickHouse创建账号和连接测试

在之前搭建ClickHouse的时候,把账户相关的去掉了,所以登录和连接的时候是不需要账号密码的,但是实际项目中,肯定是需要根据需要创建账号。

2024-11-05 15:29:19 867

原创 Flink安装和Flink CDC实现数据同步

3) 在架构方面,Apache Flink 是一个非常优秀的分布式流处理框架,因此 Flink CDC 作为Apache Flink 的一个组件具有非常灵活的水平扩展能力。5) 另外,在生态方面,这里指的是上下游存储的支持。CDC 的全称是 Change Data Capture ,在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为 CDC。实时消费日志,流处理。编写以上脚本,命名为flinkCdc2Mysql.sql,上传到flink的sql目录下,这里的sql是我新建的,你可以自己指定。

2024-11-05 10:26:48 1016

原创 ClickHouse安装

一,ClickHouse介绍ClickHouse 是一个开源的列式数据库管理系统(Column-Oriented DBMS),由俄罗斯的 Yandex 公司开发。它最初是为 Yandex 的 Metrica 分析服务设计的,用于处理大规模的数据分析任务。ClickHouse 能够提供快速的数据查询性能,即使在处理非常大的数据集时也能保持高效。:ClickHouse 针对读取操作进行了优化,能够以极高的速度处理复杂的查询。:与传统的行式存储不同,列式存储可以更有效地压缩数据,并且在进行聚合查询时效率更高。

2024-11-04 18:32:40 418

原创 yum安装指定版本Redis

上面我们安装了默认的版本,注意这里的默认版本是跟着linux的版本来的,如linux是el7的话,默认redis版本可能是3.x版本;如果linux是el9的话,默认redis版本可能是5.x版本。如果我们需要安装指定的版本,比如想在el7上安装redis6.x版本的话,就需要添加redis的存储库。"requirepass foobared"改为"requirepass 你的密码如123456"只有5.0.3.5版本,如果已经满足需求,可以直接安装。1,列出可用的redis版本。查看redis的状态。

2024-11-04 14:34:11 1517

原创 【问题解决】连接mysql时报错caching_sha2_password can not load

报错信息 "caching_sha2_password can not load" 通常出现在尝试连接到使用 MySQL 8.0 或更高版本的数据库时,因为从 MySQL 8.0 开始,默认的用户密码认证插件变成了。为你的实际用户名、主机和密码。如果不限定客户端ip的话,可以把'your_host'换成'%'。2,如果你不能升级客户端库,可以将 MySQL 用户的密码认证方式改为。如果不限定客户端ip的话,可以把'your_host'换成'%'1,升级你的数据库客户端库到支持。

2024-10-28 14:39:41 5523

原创 【问题解决】Flink在linux上运行成功但是无法访问webUI界面

在搭建Flink的时候,已经在linux服务器上运行了./start-cluster.sh, 而且日志显示已经成功了。正常来说应该能通过ip:8081来访问(8081是Flink WebUI的默认端口),但是访问的时候,显示访问拒绝。然后就可以通过ip:8081端口(可以在上面修改rest.port来实现,默认是8081)来访问了。进入到Flink目录的下conf目录,vi flink-conf.yaml。改完之后保存,重启Flink。服务器上也没有开启防火墙。

2024-10-25 15:56:35 1837

原创 SpringBoot优雅下线

当我们需要部署新版本代码的时候,需要重启服务,这个时候可能会出现一些问题,比如之前服务正在处理的请求还在处理,这个时候如果强制的停止服务,会造成数据丢失或者请求失败的情况。那么就需要有一种功能,当我们发出停止指令的时候,停止接收所有外部的请求,然后处理完已经接收的正在处理的请求,之后,再停止服务。这就是优雅下线。

2024-10-17 16:03:52 1021

原创 【问题解决】Error creating bean with name ‘applicationEventListener‘: Singleton bean creation not allowed

项目使用了ApplicationListener去监听SpringBoot项目的启动关闭等事件,在项目停止的时候,项目报了下面这个错误信息,虽然不影响项目的停止,但是还是希望不要出现。改成使用实现ApplicationListener 接口,监听的事件也改成ApplicationStartEvent。而不是使用@EventListener注解。

2024-10-17 15:24:31 1870

原创 @EqualsAndHashCode注解使用

通过使用 @EqualsAndHashCode,可以显著减少代码量并提高代码的可维护性和一致性。

2024-08-30 17:48:39 1450

原创 Luhn算法计算校验位方法

Luhn算法,也被称为“模10”或“Mod 10”算法,常用于信用卡号、条形码序列号、国家供应商标识符(NPI)等场景中生成校验位,以验证号码的正确性。1,从校验位开始,从右往左,偶数位乘2(例如,1*2=2),然后将两位数字的个位与十位相加(例如,16:1+6=7,18:1+8=9);3,将数字的和取模10(本例中得到7),再用10去减(本例中得到3),得到校验位。1,从校验位开始,从右往左,偶数位乘2,然后将两位数字的个位与十位相加;4,取其个位数字(3),得到校验位。2,计算所有数字的和(67);

2024-08-30 15:44:46 1444

原创 对称加密的数据填充算法

在使用AES和DES等对称加密算法时,待加密的数据可能不是一个完整的数据块(比如8字节一个块,或者16字节一个块), 那么就需要进行填充(padding)。常见的填充算法包括:ISO9797_M1、ISO9797_M2和PKCS5。不同的填充算法的规则和填充字符不一样,需要明确下来,不然解密的时候就会出问题。

2024-08-15 17:13:52 916

原创 Nacos配置内容加密实现

因为项目中安全检查的要求,需要将nacos配置的内容进行加密,所以需要实现将配置内容加密处理,这里引入nacos-aes-encryption-plugin插件来完成这一需求。3.2 将项目的yml文件中的"spring.cloud.nacos.config.prefix"改为"cipher-aes-"开头,例:cipher-aes-user。-U参数表示强制更新依赖。进入Nacos控制台,配置内容正常处理,配置名以"cipher-aes-"开头,例:cipher-aes-user。

2024-08-13 15:11:10 2163

原创 Spring boot敏感参数加密配置

在项目中很多参数会被配置到配置文件中,比如说密钥,用户名,数据库连接,账号密码之类的,如果用明文配置,会有一定的安全风险。为了减小风险,增加对敏感配置数据的加密配置。# 算法识别前缀(当算法发现配置文件中的值以这前缀开始,后缀结尾时,会使用指定算法解密)// 指定秘钥,和yml配置文件中保持一致。// 指定秘钥,和yml配置文件中保持一致。* @param plaintext 明文。* @param data 加密后数据。密文用指定的前后缀包围: ENC(xxx)# 配置文件加解密配置。

2024-08-13 14:49:59 1462

原创 Spring Boot常用注解

Component注解是一个通用的注解,可以用来标注任何Spring管理的bean,像@Service,@Controller,@Repository都是@Component注解的别名。用途:@Data是一个复合注解,集成了@Getter,@Setter,@ToString,@EqualsAndHashCode,@RequiredArgsConstuctor等注解。用途:用于标识控制层组件,是@Component注解的别称,用于标识Spring MVC控制器,处理Web请求并返回视图。

2024-08-03 15:51:27 2754 2

原创 Spring Controller接口地址的骚玩法,很有用!

项目里有一个接口需要对外提供,对方的解析方式有不同的方式,一个是使用流行的json格式,另外一个却是老系统,只能用xml格式,但是接口内部的实现逻辑是完全一样的,为了适配更多调用方的需求,就需要将同样的接口数据用两种格式提供出去,总觉得哪儿不对劲儿,写了不好的代码。刚好发现Spring 5.3之后 之后出现的一个新特性——路径后缀匹配,可以支持同一个接口,根据调用方的需求,自动做转换。4,定义一个接口, 路径中使用.*来做后缀, fmt这段可以随意命名5,默认是支持json格式的,如果需要支

2024-08-02 20:22:25 430

云地名地址数据库

详细的云地名地址 地址规范与规范地址分库管理 支持地址规范管理; 支持将地址资源空间划分为规范地址命名空间和用户地址命名 空间; 在地址数据库中,可以根据实际情况的需要,将整个地址空间划分为 规范地址命名空间和用户地址命名空间; 规范地址命名空间表示必须要符合规范的命名空间,不能随意进行修 改,用户地址的前一部分地址节必须遵循;

2012-05-30

升级原生版本支持nacos和feign调用的分布式ID方案leaf

升级原生版本支持nacos和feign调用的分布式ID方案leaf

2023-12-01

升级后的分布式ID获取服务Leaf

升级后的分布式ID获取服务Leaf

2023-12-01

全球最全的货币代码和数字代码表

全球最全的货币代码和数字代码表

2023-10-24

货币代码和数字代码关联表

包含全世界的货币代码和数字代码,以及关联关系和中英文名称

2023-10-24

银联ISO8583报文解析,组包,PIN解密,MAC计算工具

银联ISO8583报文解析,组包,PIN解密,MAC计算,全网唯一

2023-09-04

支付行业缩写词专业词词条表(包含全称和中文)

支付行业缩写词专业词词条表(包含全称和中文)

2023-08-18

Spring Gateway+Security+OAuth2+RBAC 实现SSO统一认证平台

内容:完整集成了Spring Gateway, Spring Security, Nacos, OAuth2, RBAC, 手机验证码登录等SSO统一认证平台,全平台唯一,全平台最全,全面细致,已经帮你踩了很多坑,一看就会,可以本地运行,或者直接作为认证平台。 适合人群:准备搭建SSO平台的架构师,准备学习OAuth2和Spring Gateway结合的高级开发 优点:全面包含了集成网关和认证鉴权的逻辑,本地运行起来就可以测试,代码完全可以引用到自己的项目中,不用删改即可完成SSO+Gateway+OAuth2+RBAC+Nacos的平台架构搭建。

2023-08-10

免费数据库实时同步工具和脚本全套

DTS数据库同步服务是目前主流大厂常用的基础服务,各大平台都有付费服务,收费均在千元以上。分享一个免费同步数据的工具,包含工具插件和全套脚本。为你省下大几千块,不香吗?

2022-08-15

ASP.NET登陆模块带MD5加密

ASP.NET登陆模块带MD5加密.比较完整,可以使用它作为自己网站的一个模块.

2014-04-21

android语音控制源代码

android语音控制源代码,调用内置google voice,设置语音操作命令.

2014-04-29

多功能WIFI神器

wifi设置,多功能音乐视频播放,多功能计算器

2012-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除