在固定的时间间隔内设置密码可用

在固定的时间间隔内设置密码可用

我想存储并加密一个密码,只在特定时间段内才能访问,比如晚上 9 点之后。(原因是我强迫自己遵守行为承诺,由受密码保护的反拖延软件强制执行。)

lockbox.pluckeye.net 上提供了一个在线解决方案,但我想将密码存储在本地或 Dropbox 中,以防服务停止。

我将不胜感激任何方法/软件提示!

答案1

您所描述的内容涉及先有鸡还是先有蛋的问题。使用加密,您将如何加密您的密码,以便只能使用当前不可用的信息来解密?如果您直到将来的某个时间才知道该信息,那么您现在就无法加密您的密码。

最简单的选择可能是将密码交给您信任的人,并让他们保证在您指定的时间之前不会将密码还给您。更好的方法是让他们创建密码,这样您一开始就无法访问它。如果您不完全信任对方,您可以输入密码的前半部分,让他们输入后半部分。如果你们双方都不向对方透露自己的密码部分,那么你们双方都无法在没有对方帮助的情况下访问该服务。

我能想到的其他解决方案是设置自己的类似服务,然后将自己锁定在服务之外。您可以设置一个服务器,仅在预定义时间查询时才告诉您密码。然后将管理访问权限移交给其他人或将自己锁定在服务之外,这样您就无法在需要时闯入并获取密码。

如果您只是想要一个可以即时完成此操作的简单脚本,请尝试以下脚本。请注意,如果脚本以某种方式终止,并且您没有在其他地方(例如保险箱或委托给朋友)保存密码副本,您的密码将永远丢失。

#!/bin/bash

echo "Nothing will be displayed as you type"
read -sp "Password to store: " pwd && echo
while :
do
    read -p "What time should I reveal the password: " time
    date -d "$time" && break
    echo "Invalid time format. Try again"
done
echo "Please destroy all records of your password now. Except for one copy that you will not have convenient access to."

unlockTime=$(date -d "$time" +%s)
now=$(date +%s)

timeout=$((unlockTime - now))
sleep $timeout && echo "Your password: $pwd" || echo "Shame on you for killing sleep. No password for you!"

此脚本将提示您输入密码和显示密码的时间。然后它将密码“安全地”隐藏在 RAM 中(不要让脚本死机),直到您指定的时间。如果您厚颜无耻地杀死 sleep 命令,此脚本将终止而不显示密码!只需将上面的脚本文本复制到使用扩展名保存的纯文本文件中.sh,使其可执行,然后从终端窗口运行它。

相关内容