Principle of WinRAR key generation
WinRAR 是一款用于管理压缩包文件的共享软件。其算法由作者尤金·罗谢尔研发,享有原创专利。
它可以用来创建或浏览 RAR、ZIP 等众多格式的压缩包。
WinRAR 不是免费软件。如果你想使用它,你应当向 RARLAB 付费,然后获得一个授权文件 rarreg.key
。
这份 repo 将会告诉你 rarreg.key
是如何生成的。
见 这里。
有多种方法可供选择:
WinRAR Keygen 支持 ASCII
、ANSI
和 UTF-8
三种编码类型,对应支持的字符如下表:
Note
默认使用 utf8
,但是你也可以指定编码为 ascii
或 ansi
。
编码 | 支持的字符 | 字符示例 |
---|---|---|
ascii | 仅支持 ASCII 编码字符 | |
ansi | 没有一种固定的 ANSI 编码,通常是 Windows-1252,但也可以是其他本地 | |
utf8 | 支持 UTF-8 编码字符 | ASCII characters, English, 简体中文, 繁體中文, Deutsch, Français, Русский, Italiano, 日本語, 한국어, Lengua española, Ελληνική γλώσσα 等。 |
WinRAR license 有 rarreg.key
和 rarkey.rar
两种类型,它们仅在导入上有区别:
rarreg.key | rarkey.rar |
---|---|
拖动导入或放于指定位置 | 双击运行自动导入 |
如果你无法执行拖动操作,你可以尝试把 rarreg.key
放置于以下目录中:
C:\Users\yourname\AppData\Roaming\WinRAR\rarreg.key
你也可以将 rarreg.key
压缩成 rarkey.rar
然后双击运行,授权导入将会自动进行。
点击展开
新的 workflow 能很方便的帮助你生成 license,你只需跟随以下步骤即可:
你的
Username
和License Name
会出现在 actions 的日志中,如果你不想泄露这些信息,请参考 5. 使用 Github Actions with secrets。
点击该项目右上角的 Fork 按钮,fork 一份代码到你的 Github:
返回到你刚刚 fork 完成的 repo,然后点击 Actions 去允许 workflows 在你的 fork repo 中运行:
允许 workflow 后,选择 WinRAR Keygen > Run workflow 并填入信息就可以开始生成了:
License 编码的区别请参考 3.1 编码说明。
运行成功之后,打开对应的任务,选择 rarreg_file 下载:
文件保留 90 天,超出时间后会自动销毁。
将 rarreg_file.zip
解压缩后会得到 rarreg.key
,然后拖动导入 WinRAR 即可。你也可以将 rarreg.key
压缩成 rarkey.rar
,然后双击运行,授权导入将会自动进行。
如果你得到的是 key 是无效的,请查看解决方法。
点击展开
使用 secrets 可以帮助你隐藏 license 信息。
点击该项目右上角的 Fork 按钮,fork 一份代码到你的 Github:
返回到你刚刚 fork 完成的 repo,然后点击 Actions 去允许 workflows 在你的 fork repo 中运行:
允许 workflows 后,进入 Settings > Secrets and variables > Actions > New repository secret 来创建 secrets:
创建三个 secrets,名称为 TEXT1
、 TEXT2
和 PWD
,并填入相关值:
填入的值应与你选择的编码类型保持一致。
Secrets Name | Explanation |
---|---|
TEXT1 | 用户名 |
TEXT2 | 许可名 |
PWD | 压缩包密码 |
创建完成后,你将会看到:
进入 Actions 选择 WinRAR Keygen with secrets > Run workflow 并填入信息:
License 编码的区别请参考 3.1 编码说明。
运行成功之后,打开对应的任务,选择 rarreg_file 下载:
文件仅保留 1 天,请及时下载。
将 rarreg_file.zip
解压缩后会得到 rarreg.7z
,使用你设置的密码进行解压缩获得 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
和 Single PC usage license
用 ASCII 编码为例:
Usage:
winrar-keygen.exe <Username> <License Name>
Example:
winrar-keygen.exe "Github" "Single PC usage license"
or:
winrar-keygen.exe "Github" "Github.com" | Out-File -Encoding ASCII rarreg.key
现在你可以看到新生成的文件:
RAR registration data
Github
Single PC usage license
UID=3a3d02329a32b63da7d8
6412212250a7d8753c5e7037d83011171578c57042fa30c506caae
9954e4853d415ec594e46017cb3db740bc4b32e47aea25db62f350
9f22065a27da4f8216d2938e1050b6e3347501a3767d1fdd7ee130
dd4ab952600ba16a99236d910bfa995d5f60651ec451f462511507
95b3722d059f2d5303a231e396cf21f17098edeec0b6e3347501a3
767d1fdd7ee45388769767642338ee8a63178f3458b71de5609b18
5eede7ed46566b10bf033daa6384062b259194b1acbd0378116064
将生成的信息以 ANSI 编码 的文本格式保存为 rarreg.key
。
使用 ANSI 编码时,你只能使用你操作系统所在国家或地区的字符。ANSI 编码从 Powershell 7.4 以后开始支持,你还需要升级你的 Powershell。
用 ANSI 编码生成多语言的 license:
winrar-keygen.exe "简体中文" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "繁體中文" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "Deutsch" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "Français" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "日本語" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "한국어" "license" | Out-File -Encoding ansi rarreg.key
使用 UTF-8 编码生成多语言的 license 时,你可能需要在 “控制面板 > 时钟和区域 > 区域 > 管理 > 更改系统区域设置” 中勾选使用 “Beta版:使用Unicode UTF-8提供全球语言支持” 才能正确的处理数据。但是不建议你这么操作,这可能会导致很多软件无法正常运行,建议使用 Github Actions。
用 UTF-8 编码生成多语言的 license:
utf8:
是为了保证在不同语言的 WinRAR 中做到不变的字符表示。
winrar-keygen.exe "utf8:简体中文" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:繁體中文" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:Deutsch" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:Français" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:日本語" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:한국어" "license" | Out-File -Encoding utf8 rarreg.key
为什么我生成的 rarreg.key
是无效的?
参数 TEXT1
和 TEXT2
需要满足对应的编码要求:
winrar-keygen.exe <TEXT1> <TEXT2>
具体可参考原理文档:授权文件"rarreg.key"的生成
如果你使用了如下命令:
winrar-keygen.exe "Github" "Single PC usage license" > rarreg.key
在较新的 Windows 10 系统中,PowerShell 将默认以 UTF16-LE 格式导出,这将会导致错误。
请指定输出编码格式,例如:
winrar-keygen.exe "Github" "Github.com" | Out-File -Encoding ascii rarreg.key
winrar-keygen.exe "Github" "Github.com" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "utf8:Github" "Github.com" | Out-File -Encoding utf8 rarreg.key
在 RARLAB 下载的简体中文版 WinRAR 将会自带广告组件,即使使用了 rarreg.key
授权,广告组件依旧会出现。这是由于简体中文代理商的一些意见,RARLAB 已将简体中文安装包的公开链接更换成了带有广告的简体中文安装包。
感谢 @hoochanlon 提供的一些方法。可以使用 win-rar-extractor 获取简体中文商业版的下载连接;也可以根据商业版的地址规律,获取相应版本的简体中文安装包:
简体中文商业版(以 6.24 和 7.01 版本为例):
6.24
https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20231013/wrr/winrar-x32-624sc.exe
https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20231013/wrr/winrar-x64-624sc.exe
7.01
https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20240528/wrr/winrar-x32-701sc.exe
https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20240528/wrr/winrar-x64-701sc.exe
简体中文广告版(以 6.24 版本为例):
win-rar 渠道:
https://www.win-rar.com/fileadmin/winrar-versions/winrar/winrar-x32-624sc.exe
https://www.win-rar.com/fileadmin/winrar-versions/winrar/winrar-x64-624sc.exe
rarlab 渠道:
https://www.rarlab.com/rar/winrar-x32-624sc.exe
https://www.rarlab.com/rar/winrar-x64-624sc.exe
请注意区分上述连接地址,更多方法可以查看 Issues #14 和 Issues #19。
如果您遇到了一些问题,可在 Issues 页面反馈,会有很多热心的开发者及 Github 用户帮助你。
该项目欢迎贡献和建议,您可以在 Issues 提出建议,或者进行提交拉取请求 😄
非常感谢一些热心的开发者,在 Issues 帮助解答一些问题。
🏆 特别感谢 @Sonic-The-Hedgehog-LNK1123
使用 MIT License