![加密 AutoHotkey 文件中的明文密码](https://linux22.com/image/1347295/%E5%8A%A0%E5%AF%86%20AutoHotkey%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E6%98%8E%E6%96%87%E5%AF%86%E7%A0%81.png)
我使用 AutoHotkey 自动化了我的 Yahoo! 登录过程。
它运行良好,但问题是,当运行此.ahk
文件时,任何人都可以打开脚本并查看密码。
有什么方法可以加密这个密码吗?
答案1
答案2
如果有人在 2023 年以后读到这篇文章,更安全的方法是依靠 Windows 凭据管理器,如下所示论坛帖子。
用户“geek”的此功能可以检索凭证:
CredRead(name)
{
DllCall("Advapi32.dll\CredReadW"
, "Str", name ; [in] LPCWSTR TargetName
, "UInt", 1 ; [in] DWORD Type = CRED_TYPE_GENERIC (https://learn.microsoft.com/en-us/windows/win32/api/wincred/ns-wincred-credentiala)
, "UInt", 0 ; [in] DWORD Flags
, "Ptr*", pCred ; [out] PCREDENTIALW *Credential
, "UInt") ; BOOL
if !pCred
return
name := StrGet(NumGet(pCred + 8 + A_PtrSize * 0, "UPtr"), 256, "UTF-16")
username := StrGet(NumGet(pCred + 24 + A_PtrSize * 6, "UPtr"), 256, "UTF-16")
len := NumGet(pCred + 16 + A_PtrSize * 2, "UInt")
password := StrGet(NumGet(pCred + 16 + A_PtrSize * 3, "UPtr"), len/2, "UTF-16")
DllCall("Advapi32.dll\CredFree", "Ptr", pCred)
return {"name": name, "username": username, "password": password}
}
用 来调用它creds := CredRead("[Credential Name]")
。