# burn-after-reading **Repository Path**: hexm02/burn-after-reading ## Basic Information - **Project Name**: burn-after-reading - **Description**: 一个安全的一次性消息分享应用,支持文本和图片内容,并提供可选的密码保护功能。一旦消息被查看,将立即从系统中删除,确保信息的私密性和安全性。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-01-05 - **Last Updated**: 2025-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 阅后即焚消息应用 一个安全的一次性消息分享应用,支持文本和图片内容,并提供可选的密码保护功能。一旦消息被查看,将立即从系统中删除,确保信息的私密性和安全性。 ## 功能特点 - 支持文本消息和图片上传 - 消息阅后即焚(仅能查看一次) - 可选的密码保护功能 - 密码错误次数限制 - 支持大文件上传(最大16MB) - 实时图片预览 - 响应式设计,支持移动端 ## 技术栈 ### 后端 - Java 17 - Spring Boot 2.7.x - Spring Data JPA - MySQL 8.0 - Maven ### 前端 - Vue 3 - Vue Router - Axios - Vite ## 项目结构 ``` burn-after-reading/ ├── backend/ │ ├── src/main/java/ │ │ └── com/example/burnafterreading/ │ │ ├── controller/ │ │ │ └── MessageController.java │ │ ├── dto/ │ │ │ ├── MessageRequest.java │ │ │ └── PasswordVerificationRequest.java │ │ ├── model/ │ │ │ └── Message.java │ │ ├── repository/ │ │ │ └── MessageRepository.java │ │ ├── service/ │ │ │ └── MessageService.java │ │ └── BurnAfterReadingApplication.java │ └── pom.xml │ └── frontend/ ├── src/ │ ├── components/ │ │ ├── CreateMessage.vue │ │ └── ReadMessage.vue │ ├── App.vue │ └── main.js ├── package.json └── vite.config.js ``` ## 快速开始 ### 后端设置 1. 创建MySQL数据库: ```sql CREATE DATABASE burn_after_reading; ``` 2. 配置数据库连接(application.properties): ```properties spring.datasource.url=jdbc:mysql://localhost:3306/burn_after_reading spring.datasource.username=your_username spring.datasource.password=your_password ``` 3. 运行后端服务: ```bash cd burn-after-reading mvn spring-boot:run ``` ### 前端设置 1. 安装依赖: ```bash cd burn-after-reading-frontend npm install ``` 2. 运行开发服务器: ```bash npm run dev ``` ## API 接口 ### 创建消息 - POST `/api/messages` - 请求体: ```json { "content": "消息内容", "image": "Base64编码的图片数据", "imageType": "image/jpeg", "hasPassword": true, "password": "可选的访问密码" } ``` ### 验证密码 - POST `/api/messages/{accessKey}/verify` - 请求体: ```json { "password": "访问密码" } ``` ### 读取消息 - GET `/api/messages/{accessKey}?password=可选的访问密码` ## 安全特性 - 消息仅可查看一次 - 密码保护(可选) - 密码错误次数限制(3次) - 使用UUID作为消息访问密钥 - 图片数据使用Base64编码传输 ## 许可证 MIT License ## 腾讯云 nohup java -jar burn-after-reading-1.0-SNAPSHOT.jar > output.log 2>&1 &