Ventoy 密码插件
使用本插件你可以针对 Ventoy 开始启动时,或者是在启动某一个具体的镜像文件时设置密码保护。
需要说明的是,并没有绝对安全的密码方案,尤其是考虑到 Ventoy 的开源属性以及 U盘的可移动性。因此这里的密码保护只是一个很简单的功能。
建议只用来作为一般性的保护或者是用来防止一般性的误操作。
注意:
1、grub对小键盘的支持不够好,因此在输入密码时(尤其是输入数字时)请不要使用右侧小键盘。
- Json 配置
推荐使用 VentoyPlugson 工具进行配置,无需手动创建、编辑json文件。请参考 VentoyPlugson
关于 ventoy.json 的位置以及相关说明,请首先参考 插件入口 (*必读)
在镜像分区 /ventoy/ventoy.json
中定义了一个 password
结构用来描述相关配置。
{ "password": { "bootpwd": "txt#123456", "isopwd": "txt#111", "wimpwd": "txt#222", "imgpwd": "txt#333", "vhdpwd": "txt#444", "efipwd": "txt#555", "vtoypwd": "txt#666", "menupwd": [ { "parent":"/MyVhdDir/WindowsVHD", "pwd":"md5#def#14fa11b4ab450b0204182266140e284d" }, { "file":"/ISO/MX-19.1_x64.iso", "pwd":"md5#e10adc3949ba59abbe56e057f20f883e" }, { "file":"/ISO/ubuntu-20.04-desktop-amd64.iso", "pwd":"md5#abc#0659c7992e268962384eb17fafe88364" } ] } }
关键字 | 类型 | 描述 |
---|---|---|
bootpwd |
STRING |
启动Ventoy时的密码。连续3次输入错误之后 Ventoy 会退出。 |
isopwd |
STRING |
所有 .iso 文件的默认密码。输入错误之后会返回到 Ventoy 主菜单。 |
wimpwd |
STRING |
所有 .wim 文件的默认密码。输入错误之后会返回到 Ventoy 主菜单。 |
imgpwd |
STRING |
所有 .img 文件的默认密码。输入错误之后会返回到 Ventoy 主菜单。 |
vhdpwd |
STRING |
所有 .vhd/.vhdx 文件的默认密码。输入错误之后会返回到 Ventoy 主菜单。 |
efipwd |
STRING |
所有 .efi 文件的默认密码。输入错误之后会返回到 Ventoy 主菜单。 |
vtoypwd |
STRING |
所有 .vtoy 文件的默认密码。输入错误之后会返回到 Ventoy 主菜单。 |
file |
STRING |
要设置密码的镜像文件的全路径。本参数支持模糊匹配,请参考 插件路径匹配说明 |
parent |
STRING |
镜像文件所在目录的全路径(以 / 开始)。此目录下的所有文件 (.iso/.wim ...) 都会使用这个相同的密码。 注意最后不能以斜杠结尾。 |
pwd |
STRING |
镜像文件启动时的密码。输入错误之后会返回到 Ventoy 主菜单。 |
- 密码优先级
menupwd file
> menupwd parent
> isopwd/wimpwd/imgpwd...
以 /abc/def/iso
文件为例:
如果通过 menupwd
里面的 file
明确设置了此文件的密码,则优先使用此密码;
如果没有设置,则看有没有通过 menupwd
里面的 parent
对 /abc/def
目录设置密码,如果有则使用此密码;
如果也没有设置,则看有没有设置 isopwd
密码,如果有则使用此密码;
如果还没有设置,则最终此 iso 文件就没有启动密码。
- 密码格式
格式 | 举例 | 说明 |
---|---|---|
普通文本 | txt#123456 |
普通文本类型密码,最简单的明文形式。密码长度不能超过32个字符。固定以 txt# 开头,后面跟密码。注意密码中不能有双引号 " 因为Ventoy内嵌的json解析器非常简单,也不支持转义字符。
|
普通 MD5 | md5#e10adc3949ba59abbe56e057f20f883e |
密码文本的MD5校验值。固定以 md5# 开头,后面跟密码的MD5值。本例中为 123456 的 MD5 值。 |
"加盐" MD5 | md5#abc#0659c7992e268962384eb17fafe88364 |
"盐"+密码文本组合之后的MD5校验值。固定以 md5#xxx# 开头,后面跟"盐"+密码的MD5值。其中 xxx 为 "盐"的部分,长度不能超过16个字符,同时不能包含井号 # (为防止解析出错)。在本例中密码为 123456 MD5部分对应的是 abc123456 的 MD5 值。
|
对于最后这种 "加盐" MD5 这里简单说明一下。
由于同一个数据的 MD5 值是一样的。所以,假设你对不同的文件设置了相同的密码,如果使用普通的MD5值,这样别人虽然不知道密码具体是什么,但是能一眼就看出来,
你这几个密码是同一个,
因为 MD5 值都是一样的。这在有些情况下可能不太好。
这里你可以在密码前面再加上几个随机的字符,然后拼起来之后再计算 MD5 值。这样只要这几个随机的字符不一样,即使密码部分一样,最后的 MD5 也是不一样的。这几个随机的字符就叫做 "盐" 。
"盐"的长度不固定,一般随机加上一两个字符即可。例如,下面这几组密码都是 123456
,但是分别以 a/b/c/d 作为"盐",最后的MD5值也都完全不一样。
md5#a#dc483e80a7a0bd9ef71d8cf973673924 md5#b#8df32286deed62bae5bf746672805c78 md5#c#ad07fb25aa2d3a9f96ee12f25e0be902 md5#d#adf00707a1c0154a9ad8edb57c8646f4
注意在输入的时候,仍然只是输入密码部分,不包含 "盐" 的部分。
- MD5 计算
对于 MD5 值可以使用 https://tool.oschina.net/encrypt?type=2 或者其他在线工具计算,非常方便。
另外,如果你有Linux的shell环境,也可以执行如下命令来计算MD5。(注意要加 -n 参数,否则会把最后的回车也作为数据的一部计算MD5)
echo -n 123456|md5sum
- 多模式选项
支持。可以分别针对 x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI 和 ARM64 UEFI 模式做不同的设置。详细说明请参考 多模式选项