Existe alguma função no AHK que consiga fazer o decodificamento semelhante a esse site?
https://www.base64decode.org/
Queria decodificar um texto BASE64 ASCII para conseguir ler ele.
Como posso fazer isso de forma tranquila?
Grato pela atenção.
Atenciosamente,
Thales
Dúvida ASCI Base Decode Topic is solved
Moderator: Gio
-
- Posts: 95
- Joined: 13 Sep 2021, 06:08
Re: Dúvida ASCI Base Decode Topic is solved
Bom dia Thalesduarte.
Trabalhei com Base64 para adicionar imagens (os dados binários em si) em um código html há algum tempo. O usuário Skan criou duas funções que são bem úteis para isso. Segue o link:
https://www.autohotkey.com/board/topic/85709-base64enc-base64dec-base64-encoder-decoder/
Quanto ao uso disso especificamente para ASCII, o código usa uma função da DLL Crypt32.dll do Windows (CryptBinaryToString), que parece ter suporte tanto a código ANSI como unicode, porém isso parece estar condicionado à versão do AutoHotkey que você esteja utilizando. Já que o texto-alvo já está codificado em um BASE64 criado a partir de texto ASCII, suponho que se você rodar em uma versão ANSI do AutoHotkey o resultado da decodificação tenha mais chances de vir correto.
Se não funcionar com o código do Skan, você ainda pode tentar programar diretamente na função CryptBinaryToString da API Crypt32 do Windows usando DllCall (o que te daria mais opções de ajuste): https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptbinarytostringa
Em último caso você também pode criar seu próprio algoritmo de decodificação mexendo diretamente nos bits. O algoritmo Base64 é relativamente simples, então não deve ser tão difícil programar um decodificador usando NumGet()s e bitshifts.
Trabalhei com Base64 para adicionar imagens (os dados binários em si) em um código html há algum tempo. O usuário Skan criou duas funções que são bem úteis para isso. Segue o link:
https://www.autohotkey.com/board/topic/85709-base64enc-base64dec-base64-encoder-decoder/
Quanto ao uso disso especificamente para ASCII, o código usa uma função da DLL Crypt32.dll do Windows (CryptBinaryToString), que parece ter suporte tanto a código ANSI como unicode, porém isso parece estar condicionado à versão do AutoHotkey que você esteja utilizando. Já que o texto-alvo já está codificado em um BASE64 criado a partir de texto ASCII, suponho que se você rodar em uma versão ANSI do AutoHotkey o resultado da decodificação tenha mais chances de vir correto.
![Arrow :arrow:](./images/smilies/icon_arrow.gif)
![Arrow :arrow:](./images/smilies/icon_arrow.gif)
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
-
- Posts: 95
- Joined: 13 Sep 2021, 06:08
Re: Dúvida ASCI Base Decode
@Gio
Olá, boa tarde!
obrigado pela orientação, com base nessas suas explicações, consegui achar algo que conseguiu resolver.
Segue
Atenciosamente,
Thales
Olá, boa tarde!
obrigado pela orientação, com base nessas suas explicações, consegui achar algo que conseguiu resolver.
Segue
Code: Select all
b64Decode(string)
{
if !(DllCall("crypt32\CryptStringToBinary", "ptr", &string, "uint", 0, "uint", 0x1, "ptr", 0, "uint*", size, "ptr", 0, "ptr", 0))
throw Exception("CryptStringToBinary failed", -1)
VarSetCapacity(buf, size, 0)
if !(DllCall("crypt32\CryptStringToBinary", "ptr", &string, "uint", 0, "uint", 0x1, "ptr", &buf, "uint*", size, "ptr", 0, "ptr", 0))
throw Exception("CryptStringToBinary failed", -1)
return StrGet(&buf, size, "UTF-8")
}
Thales
Return to “Ajuda e Suporte Geral”
Who is online
Users browsing this forum: No registered users and 7 guests