Principle of WinRAR key generation
## 1. WinRAR是什么? WinRAR是一款用于管理压缩包文件的共享软件。其算法由作者尤金·罗谢尔研发,享有原创专利。 它可以用来创建或浏览RAR、ZIP等众多格式的压缩包。 WinRAR不是免费软件。如果你想使用它,你应当向 [__RARLAB__](https://www.rarlab.com/) 付费,然后获得一个授权文件 `rarreg.key`。 这份repo将会告诉你 `rarreg.key` 是如何生成的。 ## 2. "rarreg.key"是如何生成的? 见 [这里](README.HOW_DOES_IT_WORK.zh-CN.md)。 ## 3. 使用方法 有多种方法可供选择 🧐: - [通过 Push 使用 Github Actions](#4-通过-Push-使用-Github Actions) - [通过 Secrets 使用 Github Actions](#5-通过-Secrets-使用-Github-Actions) - [通过 Visual Studio 编译使用](#6-通过-Visual-Studio-编译使用) ## 4. 通过 Push 使用 Github Actions Github Action 是微软收购 Github 之后推出的 CI/CD 工具,通过以下步骤即可在 GitHub Action 上运行程序: ### 4.1 Fork 点击该项目右上角的 **Fork** 按钮,fork 一份代码到你的 Github:  如果你之前 fork 过,然后我提交了新的代码,但是你不懂得如何合并新内容到你的仓库,那你也可以删掉当前 fork 的仓库,然后重新 fork 一次。 ### 4.2 修改 info.json 进入 `keygen/info.json`,点击编辑按钮,对该文件进行编辑:  打开该文件,你会发现有以下内容: ```json { "text1": "Github", "text2": "Github.com" } ``` 你可以自己修改 `text1` 和 `text2` 相对应的值,例如: ```json { "text1": "Your Name", "text2": "Your License" } ``` `test1` 和 `test2` 参数均是 **ANSI 编码,目前已经支持空格**。 修改完成之后,点击 **Commit changes** 按钮,Github Actions 会自动开始执行。 如果 Github Actions 未自动开始,你需要先点击 Actions 页面 **允许此 workflows 运行**,然后再次修改并提交 `keygen/info.json` 。 ### 4.3 下载文件 进入 **Actions** 并选择 **WinRAR Keygen **页面查看程序运行状况:  绿色说明运行成功,黄色说明正在运行,红色说明运行失败。运行成功之后,打开对应的任务,选择 **rarreg_file** 下载:  将 `rarreg_file.zip` 解压缩后会得到 `rarreg.key`,然后拖动导入 WinRAR 即可。 如果你得到的是 key 是无效的,请查看 [解决方法](#7-无效的key)。 ## 5. 通过 Secrets 使用 Github Actions 为了更好的方便大家 Merge 和 Pull,现在新增了通过 [Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) 使用 Github Actions 的方法: ### 5.1 Fork 点击该项目右上角的 **Fork** 按钮,fork 一份代码到你的 Github:  如果你之前 fork 过,然后我提交了新的代码,但是你不懂得如何合并新内容到你的仓库,那你也可以删掉当前 fork 的仓库,然后重新 fork 一次。 ### 5.2 创建 Secrets 进入 **Settings > Secrets > New repository secret** 来创建:  创建两个 Secrets,名称为 `text1` 和 `text2`,并填入相关值:  创建完成后,你将会看到:  ### 5.3 运行 Workflow 进入 **Actions** 并选择 **WinRAR Keygen Secrets** 来手动执行 Workflow:  运行成功之后,打开对应的任务,选择 **rarreg_file** 下载。 ## 6. 通过 Visual Studio 编译使用 我建议通过 Github Actions 的方法来使用,但是你仍然可以选择自行编译。 如果你不想自行编译,也可以到 [Release](https://github.com/bitcookies/winrar-keygen/releases/) 页面获取对应版本的 `winrar-keygen.exe`。 ### 6.1 前提条件 1. 请确保你有 **Visual Studio 2022**,因为这是一个 VS2022 项目。如果你仍在使用 Visual Studio 2019,可以在 [vs2019](https://github.com/bitcookies/winrar-keygen/tree/vs2019) 分支中找到适合 VS2019 的项目,但是此分支将不再维护。 2. 请确保你安装了 `vcpkg` 以及下面几个库: - `mpir:x86-windows-static` * `mpir:x64-windows-static` 你可以通过下的命令来安装: ```console $ vcpkg install mpir:x86-windows-static $ vcpkg install mpir:x64-windows-static ``` 3. 你的 `vcpkg` 与 __Visual Studio__ 整合了,即你曾成功运行了下面这条命令: ```console $ vcpkg integrate install ``` ### 6.2 编译 1. 在 __Visual Studio__ 中打开这个项目。 2. 选择 `Release` 配置。 3. 选择 __生成 > 生成解决方案__。 你将在 `bin/` 目录下看到生成的文件。 ### 6.3 如何使用? 直接在终端执行以下代码,配置两个参数即可生成 `rarreg.key`。 这里以 `Github` 和 `Github.com` 为例: ```console Usage: winrar-keygen.exe