Principle of WinRAR key generation
WinRAR 是一款用于管理压缩包文件的共享软件。其算法由作者尤金·罗谢尔研发,享有原创专利。
它可以用来创建或浏览 RAR、ZIP 等众多格式的压缩包。
WinRAR 不是免费软件。如果你想使用它,你应当向 RARLAB 付费,然后获得一个授权文件 rarreg.key
。
这份 repo 将会告诉你 rarreg.key
是如何生成的。
见 这里。
有多种方法可供选择:
点击展开
使用 Secrets 可以不用对仓库代码进行修改,方便你以后可以无冲突的对仓库进行同步更新,所以我优先推荐使用这种方法:
点击该项目右上角的 Fork 按钮,fork 一份代码到你的 Github:
返回到你刚刚 fork 完成的 repo,然后点击 Actions 去允许 Workflows 在你的 fork repo 中运行:
允许 Workflows 后,进入 Settings > Secrets and variables > Actions > New repository secret 来创建 Secrets:
创建两个 Secrets,名称为 text1
和 text2
,并填入相关值:
创建完成后,你将会看到:
进入 Actions 并选择 WinRAR Keygen Secrets > Run workflow > Run workflow 来手动执行 Workflow:
运行成功之后,打开对应的任务,选择 rarreg_file 下载:
将 rarreg_file.zip
解压缩后会得到 rarreg.key
,然后拖动导入 WinRAR 即可。你也可以将 rarreg.key
压缩成 rarkey.rar
,然后双击运行,授权导入将会自动进行。
如果你得到的是 key 是无效的,请查看 解决方法。
点击展开
使用 push 操作进行 key 的生成非常的简单和方便,但是当有更新同步时你需要手动进行冲突合并。所以我建议优先 通过 Secrets 使用 Github Actions ,但是你仍可以使用 push 操作:
点击该项目右上角的 Fork 按钮,fork 一份代码到你的 Github:
如果你之前 fork 过,然后我提交了新的代码,但是你不懂得如何合并新内容到你的仓库,那你也可以删掉当前 fork 的仓库,然后重新 fork 一次。
返回到你刚刚 fork 完成的 repo,然后点击 Actions 去允许 Workflows 在你的 fork repo 中运行:
允许 Workflows 后,进入 keygen/info.json
,点击编辑按钮,对该文件进行编辑:
打开该文件,你会发现有以下内容:
{
"text1": "Github",
"text2": "Github.com"
}
你可以自己修改 text1
和 text2
相对应的值,例如:
{
"text1": "Your Name",
"text2": "Your License"
}
test1
和 test2
参数均是 ANSI 编码,目前已经支持空格。
修改完成之后,点击 Commit changes 按钮,Github Actions 会自动开始执行。
进入 Actions 并选择 WinRAR Keygen 页面查看程序运行状况:
绿色说明运行成功,黄色说明正在运行,红色说明运行失败。运行成功之后,打开对应的任务,选择 rarreg_file 下载:
将 rarreg_file.zip
解压缩后会得到 rarreg.key
,然后拖动导入 WinRAR 即可。你也可以将 rarreg.key
压缩成 rarkey.rar
,然后双击运行,授权导入将会自动进行。
如果你得到的是 key 是无效的,请查看 解决方法。
点击展开
我建议通过 Github Actions 的方法来使用,但是你仍然可以选择自行编译。
如果你不想自行编译,也可以到 Release 页面获取对应版本的 winrar-keygen.exe
。
-
请确保你有 Visual Studio 2022,因为这是一个 VS2022 项目。如果你仍在使用 Visual Studio 2019,可以在 vs2019 分支中找到适合 VS2019 的项目,但是此分支将不再维护。
-
请确保你安装了
vcpkg
以及下面几个库:mpir:x86-windows-static
mpir:x64-windows-static
你可以通过下的命令来安装:
$ vcpkg install mpir:x86-windows-static $ vcpkg install mpir:x64-windows-static
-
你的
vcpkg
与 Visual Studio 整合了,即你曾成功运行了下面这条命令:$ vcpkg integrate install
- 在 Visual Studio 中打开这个项目;
- 选择
Release
配置; - 选择 生成 > 生成解决方案。
你将在 bin/
目录下看到生成的文件。
直接在终端执行以下代码,配置两个参数即可生成 rarreg.key
。
这里以 Github
和 Github.com
为例:
Usage:
winrar-keygen.exe <Your Name> <Your License>
Example:
winrar-keygen.exe "Github" "Github.com"
or:
winrar-keygen.exe "Github" "Github.com" > rarreg.key
or:
winrar-keygen.exe "Github" "Github.com" | Out-File -Encoding ASCII rarreg.key
现在你可以看到新生成的文件:
RAR registration data
Github
Github.com
UID=3a3d02329a32b63da7d8
6412212250a7d8753c5e7037d83011171578c57042fa30c506caae
9954e4853d415ec594e46076cc9a65338309b66c50453ba72158c0
656de97acb2f2a48cf3b75329283544c3e1b366a5062b85d0022f6
de3cdc56b311475b484e80b48157a0c3af60ca4f7f9c75d49bc50d
6bad616c1c58caa922d3ed0cd19771e8191522a586544c3e1b366a
5062b85d29db066f02e777ad78100865f2c31f2dd3a86998609b18
5eede7ed46566b10bf033daa6384062b259194b1acbd1443042646
将生成的信息以 ANSI 编码 的文本格式保存为 rarreg.key
。
为什么我生成的 rarreg.key
是无效的?
test1
以及 test2
生成的许可文本,均是 ANSI 编码,目前已经支持空格 Issues #5。
winrar-keygen.exe <text1> <text2>
具体可参考原理文档:授权文件"rarreg.key"的生成
如果你使用了如下命令:
winrar-keygen.exe "Github" "Github.com" > rarreg.key
在较新的 Windows 10 系统中,PowerShell 将默认以 UTF16-LE 格式导出,这将会导致错误。
请使用如下命令:
winrar-keygen.exe "Github" "Github.com" | Out-File -Encoding ASCII rarreg.key
如果你无法执行拖动操作,你可以尝试把 rarreg.key
放在以下目录中:
C:\Users\yourname\AppData\Roaming\WinRAR\rarreg.key
你也可以将 rarreg.key
压缩成 rarkey.rar
,然后双击运行,授权导入将会自动进行。
在 RARLAB 下载的简体中文版 WinRAR 将会自带广告组件,即使使用了 rarreg.key
授权,广告组件依旧会出现。这是由于简体中文代理商的一些意见,RARLAB 已将简体中文安装包的公开链接更换成了带有广告的简体中文安装包。
感谢 @hoochanlon 提供的一些方法。可以使用 win-rar-extractor 获取简体中文商业版的下载连接;也可以根据商业版的地址规律,获取相应版本的简体中文安装包:
简体中文商业版(以 6.11 版本为例):
win-rar 渠道:
https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20220317/rrlb/winrar-x64-611sc.exe
简体中文广告版(以 6.11 版本为例):
win-rar 渠道:
https://www.win-rar.com/fileadmin/winrar-versions/winrar/winrar-x64-611sc.exe
rarlab 渠道:
https://www.rarlab.com/rar/winrar-x64-611sc.exe
请注意区分上述连接地址,更多方法可以查看 Issues #14 和 Issues #19。
如果您遇到了一些问题,可在 Issues 页面反馈,会有很多热心的开发者及 Github 用户帮助你。
该项目欢迎贡献和建议,您可以在 Issues 提出建议,或者进行提交拉取请求 😄
非常感谢一些热心的开发者,在 Issues 帮助解答一些问题。
🏆 特别感谢 @Sonic-The-Hedgehog-LNK1123
使用 MIT License