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, 蓝队防御, 设备中继, 重放攻击防护