加密 AutoHotkey 文件中的明文密码

加密 AutoHotkey 文件中的明文密码

我使用 AutoHotkey 自动化了我的 Yahoo! 登录过程。

它运行良好,但问题是,当运行此.ahk文件时,任何人都可以打开脚本并查看密码。

有什么方法可以加密这个密码吗?

答案1

自动热键可以使用其内置工具将 AHK 脚本编译为可执行文件 (.exe)ahk2exe
编译器会加密您的源数据,因此很难对其进行反编译。(但并非不可能)

在此处输入图片描述

编辑:据我所知,不可能只加密脚本中的一个字符串而不影响其余部分。加密整个脚本才是可行的方法。

答案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]")

相关内容