命令与脚本:账号、权限与加密 · 生成口令与计算校验摘要至签名与校验发布产物
命令与脚本:账号、权限与加密
生成口令与计算校验摘要
需要口令时看 pwgen/apg;需要文件摘要时看 shasum/md5sum。摘要不提供加密或来源认证;MD5 不适合防恶意篡改,见 GNU 摘要说明。
pwgen · 生成可拼写发音的密码
更多信息:https://manned.org/pwgen。
- 生成指定长度的随机密码:
pwgen -y {{长度}}- 生成安全、难以记忆的密码:
pwgen -s {{长度}}- 生成至少包含一个大写字母的密码:
pwgen -c {{长度}}apg · 生成任意复杂度的随机密码
更多信息:https://manned.org/apg。
- 生成随机密码(默认密码长度为 8 位):
apg- 生成密码,包含至少 1 个符号 (S), 1 个数字 (N), 1 个大写字母 (C), 1 个小写字母 (L):
apg -M SNCL- 生成 16 个字符的密码:
apg -m 16- 生成最大长度为 16 位的密码:
apg -x 16- 生成未出现在字典中的密码(必须提供字典文件):
apg -r {{路径/到/字典文件}}shasum · 计算或检查 SHA 消息摘要
- 计算一个或多个文件的 SHA1 校验值:
shasum {{路径/到/文件1 路径/到/文件2 ...}}- 使用指定算法计算一个或多个文件的 SHA 校验值:
shasum --algorithm {{1|224|256|384|512|512224|512256}} {{路径/到/文件1 路径/到/文件2 ...}}- 从标准输入中获取并计算 SHA1 校验值:
{{命令}} | shasum- 计算并保存 SHA256 校验值列表到文件:
shasum --algorithm 256 {{路径/到/文件1 路径/到/文件2 ...}} > {{路径/到/文件.sha256}}- 读取包含 SHA 校验值和文件名的文件,并验证所有文件是否具有匹配的校验值(算法将被自动检测):
shasum {{[-c|--check]}} {{路径/到/文件}}- 仅显示缺失文件或验证失败的消息:
shasum {{[-c|--check]}} --quiet {{路径/到/文件}}- 仅显示验证失败的消息,忽略缺失的文件:
shasum --ignore-missing {{[-c|--check]}} --quiet {{路径/到/文件}}- 检查文件的已知 SHA 校验值:
echo '{{文件的已知 sha 校验值}} {{路径/到/文件}}' | shasum {{[-c|--check]}}md5sum · 计算或检查 MD5 摘要
更多信息:https://www.gnu.org/software/coreutils/manual/html_node/md5sum-invocation.html。
- 计算一个或多个文件的 MD5 校验和:
md5sum {{路径/到/文件1 路径/到/文件2 ...}}- 计算并将 MD5 校验和列表保存到一个文件中:
md5sum {{路径/到/文件1 路径/到/文件2 ...}} > {{路径/到/文件.md5}}- 从
stdin计算 MD5 校验和:
{{命令}} | md5sum- 读取包含 MD5 校验和和文件名的文件,并验证所有文件的校验和是否匹配:
md5sum {{[-c|--check]}} {{路径/到/文件.md5}}- 仅在文件丢失或验证失败时显示消息:
md5sum {{[-c|--check]}} --quiet {{路径/到/文件.md5}}- 仅在验证失败时显示消息,忽略丢失的文件:
md5sum --ignore-missing {{[-c|--check]}} --quiet {{路径/到/文件.md5}}- 检查已知文件的 MD5 校验和:
echo {{已知的文件的_md5_校验和}} {{路径/到/文件}} | md5sum {{[-c|--check]}}生成密钥并加密、解密文件
age 先生成密钥再处理文件;GPG 同时包含密钥和加密操作。无线捕获文件的解密保留在 airdecap-ng。
age-keygen · 生成 age 密钥对
另请参阅:
age,age-inspect。 更多信息:https://manned.org/age-keygen。
- 生成密钥对,将其保存到未加密文件,并将公钥打印到标准输出:
age-keygen {{[-o|--output]}} {{路径/到/文件}}- 将身份转换为接收者,并将公钥打印到标准输出:
age-keygen -y {{路径/到/文件}}age · 一个简单、现代、安全的文件加密工具
另请参阅:
age-keygen,age-inspect。 更多信息:https://github.com/FiloSottile/age#usage。
- 生成一个可以用密码短语(passphrase)解密的加密文件:
age {{[-p|--passphrase]}} {{[-o|--output]}} {{路径/到/已加密文件}} {{路径/到/未加密文件}}- 用一个或多个公钥加密一个文件,这些公钥以字面形式输入:
age {{[-r|--recipient]}} {{公钥}} {{[-o|--output]}} {{路径/到/已加密文件}} {{路径/到/未加密文件}}- 用收件人文件中指定的一个或多个公钥来加密一个文件:
age {{[-R|--recipients-file]}} {{路径/到/收件人文件}} {{[-o|--output]}} {{路径/到/已加密文件}} {{路径/到/未加密文件}}- 用密码短语解密一个文件:
age {{[-d|--decrypt]}} {{[-o|--output]}} {{路径/到/已解密文件}} {{路径/到/已加密文件}}- 用私钥文件解密一个文件:
age {{[-d|--decrypt]}} {{[-i|--identity]}} {{路径/到/私钥文件}} {{[-o|--output]}} {{路径/到/已解密文件}} {{路径/到/已加密文件}}gpg · GNU Privacy Guard
另请参阅:
sq。 更多信息:https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html。
- 交互地创建 GPG 公钥和私钥:
gpg {{[--full-gen-key|--full-generate-key]}}- 不加密,仅对
doc.txt进行签名(生成doc.txt.asc,格式为 ASCII 码形式):
gpg --clearsign {{doc.txt}}- 为接收者 alice@example.com 和 bob@example.com 签名并加密
doc.txt(生成doc.txt.gpg):
gpg {{[-es|--encrypt --sign]}} {{[-r|--recipient]}} {{alice@example.com}} {{[-r|--recipient]}} {{bob@example.com}} {{doc.txt}}- 只用密码加密
doc.txt(生成doc.txt.gpg):
gpg {{[-c|--symmetric]}} {{doc.txt}}- 解密
doc.txt.gpg(输出到标准输出):
gpg {{[-d|--decrypt]}} {{doc.txt.gpg}}- 导入一个公钥:
gpg --import {{public.gpg}}- 导出 alice@example.com 的公钥(输出到标准输出):
gpg --export {{[-a|--armor]}} {{alice@example.com}}- 导出 alice@example.com 的私钥(输出到标准输出):
gpg --export-secret-keys {{[-a|--armor]}} {{alice@example.com}}airdecap-ng · 解密 WEP、WPA 或 WPA2 加密的捕获文件
是 Aircrack-ng 网络软件套件的一部分。 更多信息:https://www.aircrack-ng.org/doku.php?id=airdecap-ng。
- 从开放网络捕获文件中移除无线头,并使用接入点的 MAC 地址进行过滤:
airdecap-ng -b {{ap_mac}} {{路径/到/捕获文件.cap}}- 使用十六进制格式的密钥解密 WEP 加密的捕获文件:
airdecap-ng -w {{hex_key}} {{路径/到/捕获文件.cap}}- 使用接入点的 ESSID 和密码解密 WPA/WPA2 加密的捕获文件:
airdecap-ng -e {{essid}} -p {{密码}} {{路径/到/捕获文件.cap}}- 使用接入点的 ESSID 和密码解密 WPA/WPA2 加密的捕获文件,并保留头部信息:
airdecap-ng -l -e {{essid}} -p {{密码}} {{路径/到/捕获文件.cap}}- 使用接入点的 MAC 地址进行过滤,并使用接入点的 ESSID 和密码解密 WPA/WPA2 加密的捕获文件:
airdecap-ng -b {{ap_mac}} -e {{essid}} -p {{密码}} {{路径/到/捕获文件.cap}}签名与校验发布产物
GPG 签名验证、容器及文件签名、Java 归档签名分别查阅 gpgv、cosign、jarsigner。
gpgv · 验证 OpenPGP 签名
另请参阅:
gpg。 更多信息:https://www.gnupg.org/documentation/manuals/gnupg/gpgv.html。
- 验证签名文件:
gpgv {{path/to/file}}- 使用分离式签名验证已签名的文件:
gpgv {{path/to/signature}} {{path/to/file}}- 在 keyrings 列表中添加一个文件(一个导出的钥匙也算作一个 keyring):
gpgv --keyring {{path/to/keyring_file}} {{path/to/signature}} {{path/to/file}}cosign · 在 OCI 注册表中对容器进行签名、验证和存储
更多信息:https://github.com/sigstore/cosign/blob/main/doc/cosign.md。
- 生成密钥对:
cosign generate-key-pair- 对容器进行签名,并将签名存储在注册表中:
cosign sign --key {{cosign.key}} {{镜像}}- 使用存储在 Kubernetes Secret 中的密钥对容器镜像进行签名:
cosign sign --key k8s://{{命名空间}}/{{密钥}} {{镜像}}- 使用本地密钥对 blob 文件进行签名:
cosign sign-blob --key {{cosign.key}} {{路径/到/文件}}- 使用公钥验证容器:
cosign verify --key {{cosign.pub}} {{镜像}}- 使用 Dockerfile 中的公钥验证镜像:
cosign dockerfile verify -key {{cosign.pub}} {{路径/到/Dockerfile}}- 使用存储在 Kubernetes Secret 中的公钥验证镜像:
cosign verify --key k8s://{{命名空间}}/{{密钥}} {{镜像}}- 复制容器镜像及其签名:
cosign copy {{example.com/src:latest}} {{example.com/dest:latest}}jarsigner · 签名并验证 Java 存档(.jar)文件
更多信息:https://docs.oracle.com/en/java/javase/25/docs/specs/man/jarsigner.html。
- 签名一个
.jar文件:
jarsigner {{path/to/file.jar}} {{keystore_alias}}- 使用特定算法对
.jar文件进行签名:
jarsigner -sigalg {{algorithm}} {{path/to/file.jar}} {{keystore_alias}}- 验证
.jar文件的签名:
jarsigner -verify {{path/to/file.jar}}继续阅读
- 文件与文本处理完整实践与解答
- 文件与文本处理上手与对象
- 文件与文本处理任务与配置