密码保护文件夹时陷入循环

时间:2019-07-06 23:41:49

标签: applescript password-protection

我想执行一个文件夹操作,该操作需要密码才能在打开时访问内容,而当前代码如下:

on opening folder
    set login to true
    if login = true then
        tell application "Finder"
            close windows
        end tell
        set passw to display dialog ¬
            "Enter your password:" default answer ¬
            "" buttons {"Cancel", "Let me in!"} ¬
            default button 2 ¬
            giving up after 5 with hidden answer
        set entered to text returned of passw
        if entered = "password" then
            tell application "Finder"
                open folder "Myfolder"
            end tell
        end if
    end if
end opening folder

但是,打开Myfolder时,显然需要输入密码,即使我输入正确,窗口也会打开一秒钟然后关闭,要求再次输入密码,然后继续等等。

我认为这是因为每次打开Myfolder时,脚本都会运行并要求输入密码,但是如何解决此问题?我尝试在loginfalse之后将open folder "Myfolder"设置为end tell,但这并不是说login每次都设置为true时脚本已运行。

如何永久停止需要密码的脚本?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

<button type='button'></button>
<audio src='https://gldrv.s3.amazonaws.com/av/Florence_and_the_Machine-Dog_%20Days_are_Over.mp3'></audio>

在脚本运行期间会保留属性,因此property passwordWasGiven : false on opening folder theFolder if passwordWasGiven is false then tell application "Finder" close theFolder end tell set passw to display dialog ¬ "Enter your password:" default answer ¬ "" buttons {"Cancel", "Let me in!"} ¬ default button 2 ¬ giving up after 5 with hidden answer set entered to text returned of passw if entered = "password" then set passwordWasGiven to true tell application "Finder" open folder theFolder end tell end if else set passwordWasGiven to false end if end opening folder 成为切换是否输入正确密码的开关。

但是,请注意,这是一种对文件夹进行密码保护的糟糕方法。在Finder关闭文件夹之前,人们可以看到该文件夹​​的内容。人们可以在命令行上轻松访问内容;人们可以阅读脚本来发现密码。精打细算的任何人都可以进入。如果要创建安全文件夹,请在命令行上使用“磁盘工具”或“ diskutil”并制作加密的磁盘映像。这并不比使用文件夹更困难-就像打开文件夹一样,双击它可以打开它-但是密码是安全的(假设您选择将其保存在钥匙串中)并且加密强度很高。