sourabh3125/Offline-upi-payment-system

GitHub: sourabh3125/Offline-upi-payment-system

一个无需互联网、通过蓝牙mesh转发加密支付数据并实现精确一次结算的离线UPI支付系统。

Stars: 0 | Forks: 0

# 离线 UPI 支付系统 无需互联网即可转账。您的手机加密支付信息,并通过蓝牙通过附近的手机传递,直到有网络的手机将其上传到后端进行结算。 ## 问题 UPI 在没有网络的情况下无法工作。该系统通过点对点设备网状网络路由支付——陌生人中继您的加密数据包而无法读取。 ## 工作原理 1. 发送方加密支付(RSA + AES-256-GCM) 2. 数据包通过蓝牙在设备间传输 3. 第一个有网络的设备上传到后端 4. 后端去重、解密并结算 ## 关键工程 - **混合加密** —— AES-256-GCM 用于负载,RSA-OAEP 包裹密钥。翻转一位即解密失败。 - **精确一次结算** —— 密文的 SHA-256 哈希 + 原子性的 ConcurrentHashMap.putIfAbsent。三个桥同时上传,恰好一个完成结算。 - **重放保护** —— 加密负载内包含签名时间戳。任何修改都会破坏认证标签。 ## 本地运行 ``` git clone https://github.com/sourabh3125/Offline-upi-payment-system.git cd Offline-upi-payment-system ./mvnw spring-boot:run ``` 打开 `http://localhost:2002` ## 技术栈 Java 17 · Spring Boot 3.3 · AES-256-GCM · RSA-OAEP · H2 · JPA
标签:AES-256-GCM加密, H2数据库, Java 17, JPA, JS文件枚举, RSA-OAEP加密, Spring Boot, UPI支付, 加密传输, 原子幂等性, 后端系统, 域名枚举, 安全架构, 支付结算, 无网络支付, 混合加密, 点对点网络, 离线支付, 蓝牙Mesh, 蓝队防御, 设备中继, 重放攻击防护