我正在嘗試編寫一個bash例程,測試用戶的輸入是否是我的證書數據庫的正確密碼。腳本來測試正確的證書數據庫密碼
本來我想象的是我會首先在需要密碼的證書數據庫上執行一個良性的certutil或pk12util操作。然後測試返回碼以查看它是否成功。
但是,certutil的密碼參數需要密碼文件(這是不受歡迎的)。我可以使用pk12util導出證書和私鑰進行測試(對於額外的pk12文件並不滿意)。
其他方法測試數據庫密碼的任何建議嗎?
PR
我正在嘗試編寫一個bash例程,測試用戶的輸入是否是我的證書數據庫的正確密碼。腳本來測試正確的證書數據庫密碼
本來我想象的是我會首先在需要密碼的證書數據庫上執行一個良性的certutil或pk12util操作。然後測試返回碼以查看它是否成功。
但是,certutil的密碼參數需要密碼文件(這是不受歡迎的)。我可以使用pk12util導出證書和私鑰進行測試(對於額外的pk12文件並不滿意)。
其他方法測試數據庫密碼的任何建議嗎?
PR
使用的certutil與mktemp(1)
沿密碼文件。這會生成一個只能由當前用戶讀取的臨時文件(應該是已知密碼的同一個人)。
還要將腳本添加trap "rm $tmpfile" EXIT
以確保在腳本因任何原因而退出時密碼被刪除。
如果這還不夠安全,您必須編寫一個小型C程序,該程序在證書數據庫上運行。
嘗試使用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