You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AutoHotkey中实现十六进制(Hex)转Base64功能?

十六进制转Base64的AutoHotkey实现

以下代码和你提供的Python示例功能完全一致,可直接运行:

AutoHotkey v1 版本代码

; 十六进制字符串转Base64函数
HexToBase64(hexStr) {
    VarSetCapacity(binary, StrLen(hexStr)//2, 0)
    Loop % StrLen(hexStr)//2 {
        hexByte := SubStr(hexStr, 2*A_Index-1, 2)
        NumPut("UChar", "0x" . hexByte, binary, A_Index-1)
    }
    DllCall("Crypt32\CryptBinaryToString", "Ptr", &binary, "UInt", StrLen(hexStr)//2, "UInt", 1, "Ptr", 0, "UIntP", strLen)
    VarSetCapacity(base64Str, strLen*2, 0)
    DllCall("Crypt32\CryptBinaryToString", "Ptr", &binary, "UInt", StrLen(hexStr)//2, "UInt", 1, "Str", base64Str, "UIntP", strLen)
    return base64Str
}

; 测试代码,和你的Python示例输入一致
hexStr := "10000000000002ae"
b64Str := HexToBase64(hexStr)
MsgBox % "转换结果:" . b64Str ; 输出结果为 EAAAAAAAAq4=,和Python代码输出一致

AutoHotkey v2 版本代码

; 十六进制字符串转Base64函数
HexToBase64(hexStr) {
    binaryLen := StrLen(hexStr) // 2
    binary := Buffer(binaryLen, 0)
    Loop binaryLen {
        hexByte := SubStr(hexStr, 2*A_Index-1, 2)
        NumPut("UChar", Integer(hexByte, 16), binary, A_Index - 1)
    }
    DllCall("Crypt32\CryptBinaryToString", "Ptr", binary.Ptr, "UInt", binaryLen, "UInt", 1, "Ptr", 0, "UIntP", &strLen := 0)
    base64Str := StrPut("c", strLen)
    DllCall("Crypt32\CryptBinaryToString", "Ptr", binary.Ptr, "UInt", binaryLen, "UInt", 1, "Str", base64Str, "UIntP", strLen)
    return base64Str
}

; 测试代码,和你的Python示例输入一致
hexStr := "10000000000002ae"
b64Str := HexToBase64(hexStr)
MsgBox "转换结果:" . b64Str ; 输出结果为 EAAAAAAAAq4=,和Python代码输出一致

两份代码均无需额外依赖,调用Windows系统内置API实现,转换结果和你提供的Python代码输出完全匹配

内容的提问来源于stack exchange,提问作者Mr MG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:36:03