2009-12-15 43 views
0

我正在尝试编写一个bash例程,测试用户的输入是否是我的证书数据库的正确密码。脚本来测试正确的证书数据库密码

本来我想象的是我会首先在需要密码的证书数据库上执行一个良性的certutil或pk12util操作。然后测试返回码以查看它是否成功。

但是,certutil的密码参数需要密码文件(这是不受欢迎的)。我可以使用pk12util导出证书和私钥进行测试(对于额外的pk12文件并不满意)。

其他方法测试数据库密码的任何建议吗?

PR

回答

1

使用的certutil与mktemp(1)沿密码文件。这会生成一个只能由当前用户读取的临时文件(应该是已知密码的同一个人)。

还要将脚本添加trap "rm $tmpfile" EXIT以确保在脚本因任何原因而退出时密码被删除。

如果这还不够安全,您必须编写一个小型C程序,该程序在证书数据库上运行。

0

尝试使用Process Substitution。示例

read -s -p "Enter Password: " pass 
if certutil -f <(echo "$pass"); then 
    # Password correct, do stuff here 
else 
    # Password incorrect, do stuff here 
fi