shell 校验密码有效性
时间: 2023-07-26 20:21:36 浏览: 44
在 shell 中校验密码有效性可以使用 `passwd` 命令,该命令可以修改用户密码,也可以用来校验密码是否正确。具体方法如下:
1. 创建一个密码文件并将密码写入文件中,比如文件名为 `password.txt`,密码为 `mypassword`。
2. 使用 `openssl` 命令将密码文件加密,生成一个加密后的密码文件,比如文件名为 `password.enc`,命令如下:
```
openssl enc -aes-256-cbc -salt -in password.txt -out password.enc
```
3. 编写一个 shell 脚本,读取用户输入的密码,将其加密后与 `password.enc` 文件中的密码进行比较,如果匹配则说明密码正确。具体脚本如下:
```bash
#!/bin/bash
# 读取用户输入的密码
read -sp "Enter your password: " password
# 加密用户输入的密码
encrypted_password=$(echo $password | openssl enc -aes-256-cbc -a -salt)
# 从加密后的文件中读取密码
file_password=$(cat password.enc)
# 比较密码是否匹配
if [ "$encrypted_password" = "$file_password" ]; then
echo "Password is valid."
else
echo "Invalid password."
fi
```
注意:在比较密码是否匹配时,需要使用 `=` 进行比较,而不是 `==`。