|
| 1 | +# Hash |
| 2 | + |
| 3 | +一个简洁高效的 macOS 哈希值计算工具,支持多种哈希算法和文件批量处理。 |
| 4 | + |
| 5 | +## 功能特性 |
| 6 | + |
| 7 | +- 🔐 **多种哈希算法支持**:MD5、SHA-1、CRC32 |
| 8 | +- 📁 **批量文件处理**:支持同时计算多个文件的哈希值 |
| 9 | +- 🎯 **拖拽操作**:直接拖拽文件到应用程序窗口即可开始计算 |
| 10 | +- 📋 **一键复制**:点击即可复制哈希值到剪贴板 |
| 11 | +- 📊 **文件信息显示**:显示文件大小、版本信息、修改日期等 |
| 12 | +- 🌍 **多语言支持**:支持中文(简体/繁体)、英文、日文、韩文、德文、法文、西班牙文、俄文、阿拉伯文 |
| 13 | +- 🎨 **现代化界面**:基于 SwiftUI 构建的原生 macOS 应用 |
| 14 | +- ⚡ **高性能计算**:异步处理,支持大文件计算 |
| 15 | + |
| 16 | +## 系统要求 |
| 17 | + |
| 18 | +- macOS 11.0 或更高版本 |
| 19 | +- Xcode 13.0 或更高版本(开发环境) |
| 20 | + |
| 21 | +## 安装 |
| 22 | + |
| 23 | +### 从源码构建 |
| 24 | + |
| 25 | +1. 克隆仓库: |
| 26 | +```bash |
| 27 | +git clone <repository-url> |
| 28 | +cd Hash |
| 29 | +``` |
| 30 | + |
| 31 | +2. 使用 Xcode 打开项目: |
| 32 | +```bash |
| 33 | +open Hash.xcodeproj |
| 34 | +``` |
| 35 | + |
| 36 | +3. 在 Xcode 中构建并运行项目(⌘+R) |
| 37 | + |
| 38 | +## 使用方法 |
| 39 | + |
| 40 | +### 基本操作 |
| 41 | + |
| 42 | +1. **启动应用程序**:双击应用图标或从 Launchpad 启动 |
| 43 | + |
| 44 | +2. **添加文件**: |
| 45 | + - 点击"选择文件"按钮选择文件 |
| 46 | + - 或直接将文件拖拽到应用程序窗口 |
| 47 | + |
| 48 | +3. **选择哈希算法**: |
| 49 | + - 在右侧面板中勾选需要计算的哈希算法 |
| 50 | + - 支持 MD5、SHA-1、CRC32 |
| 51 | + |
| 52 | +4. **开始计算**: |
| 53 | + - 点击"开始计算"按钮 |
| 54 | + - 或添加文件后自动开始计算 |
| 55 | + |
| 56 | +5. **复制结果**: |
| 57 | + - 点击任意哈希值即可复制到剪贴板 |
| 58 | + - 支持复制单个哈希值或所有结果 |
| 59 | + |
| 60 | +### 高级功能 |
| 61 | + |
| 62 | +- **批量处理**:可同时添加多个文件进行批量计算 |
| 63 | +- **进度显示**:实时显示计算进度 |
| 64 | +- **文件管理**:支持清除单个文件或清空所有文件 |
| 65 | +- **结果导出**:可复制所有计算结果 |
| 66 | + |
| 67 | +## 技术架构 |
| 68 | + |
| 69 | +### 核心技术 |
| 70 | + |
| 71 | +- **SwiftUI**:现代化的用户界面框架 |
| 72 | +- **CryptoKit**:Apple 官方加密框架,用于 SHA-1 计算 |
| 73 | +- **Foundation**:用于 MD5 和文件操作 |
| 74 | +- **UniformTypeIdentifiers**:文件类型识别 |
| 75 | + |
| 76 | +### 项目结构 |
| 77 | + |
| 78 | +``` |
| 79 | +Hash/ |
| 80 | +├── Hash/ |
| 81 | +│ ├── ContentView.swift # 主界面视图 |
| 82 | +│ ├── HashApp.swift # 应用程序入口 |
| 83 | +│ ├── Assets.xcassets/ # 应用资源 |
| 84 | +│ │ └── AppIcon.appiconset/ # 应用图标 |
| 85 | +│ ├── Hash.entitlements # 应用权限配置 |
| 86 | +│ └── *.lproj/ # 多语言本地化文件 |
| 87 | +├── HashTests/ # 单元测试 |
| 88 | +└── HashUITests/ # UI 测试 |
| 89 | +``` |
| 90 | + |
| 91 | +### 哈希算法实现 |
| 92 | + |
| 93 | +- **MD5**:使用 CommonCrypto 框架实现 |
| 94 | +- **SHA-1**:使用 CryptoKit 框架实现 |
| 95 | +- **CRC32**:自定义实现,使用标准 CRC32 多项式 |
| 96 | + |
| 97 | +## 开发 |
| 98 | + |
| 99 | +### 环境配置 |
| 100 | + |
| 101 | +1. 安装 Xcode 13.0 或更高版本 |
| 102 | +2. 确保 macOS 版本为 11.0 或更高 |
| 103 | +3. 克隆项目并在 Xcode 中打开 |
| 104 | + |
| 105 | +### 构建项目 |
| 106 | + |
| 107 | +```bash |
| 108 | +# 使用 Xcode 命令行工具构建 |
| 109 | +xcodebuild -project Hash.xcodeproj -scheme Hash -configuration Debug build |
| 110 | + |
| 111 | +# 或在 Xcode 中使用快捷键 ⌘+B |
| 112 | +``` |
| 113 | + |
| 114 | +### 运行测试 |
| 115 | + |
| 116 | +```bash |
| 117 | +# 运行单元测试 |
| 118 | +xcodebuild test -project Hash.xcodeproj -scheme Hash -destination 'platform=macOS' |
| 119 | + |
| 120 | +# 或在 Xcode 中使用快捷键 ⌘+U |
| 121 | +``` |
| 122 | + |
| 123 | +## 本地化 |
| 124 | + |
| 125 | +应用程序支持以下语言: |
| 126 | + |
| 127 | +- 🇨🇳 中文(简体) |
| 128 | +- 🇹🇼 中文(繁体) |
| 129 | +- 🇺🇸 English |
| 130 | +- 🇯🇵 日本語 |
| 131 | +- 🇰🇷 한국어 |
| 132 | +- 🇩🇪 Deutsch |
| 133 | +- 🇫🇷 Français |
| 134 | +- 🇪🇸 Español |
| 135 | +- 🇷🇺 Русский |
| 136 | +- 🇸🇦 العربية |
| 137 | + |
| 138 | +### 添加新语言 |
| 139 | + |
| 140 | +1. 在 Xcode 中选择项目 |
| 141 | +2. 在 "Localizations" 部分添加新语言 |
| 142 | +3. 翻译 `Localizable.strings` 文件中的字符串 |
| 143 | + |
| 144 | +## 贡献 |
| 145 | + |
| 146 | +欢迎提交 Issue 和 Pull Request! |
| 147 | + |
| 148 | +### 贡献指南 |
| 149 | + |
| 150 | +1. Fork 项目 |
| 151 | +2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) |
| 152 | +3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) |
| 153 | +4. 推送到分支 (`git push origin feature/AmazingFeature`) |
| 154 | +5. 创建 Pull Request |
| 155 | + |
| 156 | +## 许可证 |
| 157 | + |
| 158 | +本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 |
| 159 | + |
| 160 | +## 更新日志 |
| 161 | + |
| 162 | +### v1.0.0 |
| 163 | +- ✨ 初始版本发布 |
| 164 | +- 🔐 支持 MD5、SHA-1、CRC32 哈希算法 |
| 165 | +- 📁 支持批量文件处理 |
| 166 | +- 🎯 支持拖拽操作 |
| 167 | +- 🌍 支持多语言界面 |
| 168 | +- 🎨 现代化 SwiftUI 界面 |
| 169 | + |
| 170 | +## 联系方式 |
| 171 | + |
| 172 | +如有问题或建议,请通过以下方式联系: |
| 173 | + |
| 174 | +- 提交 Issue:[GitHub Issues](https://github.com/your-username/Hash/issues) |
| 175 | + |
| 176 | + |
| 177 | +--- |
| 178 | + |
| 179 | +**Hash** - 让文件哈希计算变得简单高效 🚀 |
0 commit comments