Попытка зашифровать Hex в base64 через буфер обмена с помощью AutoHotKey
Я получил код, который будет декодировать выделенный URL в base64.
Теперь мне нравится кодировать подсвеченный шестнадцатеричный код в base64, но я не могу заставить его работать: /
Например, у нас есть шестнадцатеричный код: 3648af61e4473d60d85481bf822a6d04316615efd6cd903d6bdc05b8c9ae58bfbabbb154099e345e4e12d770a774ad599420af221c26a7e0f21f9f1fc43a6d14
и мы хотим закодировать этот base64. В результате я получаю
MzY0OGFmNjFlNDQ3M2Q2MGQ4NTQ4MWJmODIyYTZkMDQzMTY2MTVlZmQ2Y2Q5MDNkNmJkYzA1YjhjOWFlNThiZmJhYmJiMTU0MDk5ZTM0NWU0ZTEyZDc3MGE3NzRhZDU5OTQyMGFmMjIxYzI2YTdlMGYyMWY5ZjFmYzQzYTZkMTQ=
но это должно быть NkivYeRHPWDYVIG/giptBDFmFe/WzZA9a9wFuMmuWL+6u7FUCZ40Xk4S13CndK1ZlCCvIhwmp+DyH58fxDptFA==
Код, который у меня есть,
#SingleInstance, Force ;***********Decode URL******************* !d:: ;Alt+d will Decode highlighted text from URL to base64 gosub Store_Clipboard_Copy_Selected_Text Clipboard:=URiDecode(clipboard) ;Decode URL Gosub Paste_and_Restore_Stored_Clipboard ;restore clipboard return ;***********Decode HEX******************* !f:: ;Alt+f will Encode highlighted text from Hex to base64 gosub Store_Clipboard_Copy_Selected_Text Clipboard:=Base64Encode(clipboard) ; Encode HEX Gosub Paste_and_Restore_Stored_Clipboard ;restore clipboard return ;*******Store Clipboard- save for restoring, and copy selected text to clipboard**************** Store_Clipboard_Copy_Selected_Text: Store:=ClipboardAll ;Store full version of Clipboard clipboard = ; Empty the clipboard SendInput, ^c ;changd from Send 11/23 ClipWait, 1 If ErrorLevel ;Added errorLevel checking { MsgBox, No text was sent to clipboard Return } return ;**********************restore clipboard********************************* Paste_and_Restore_Stored_Clipboard: ;put back original content SendEvent, ^v Clipboard:=Store return uriDecode(str) { Loop If RegExMatch(str, "i)(?<=%)[\da-f]", hex) StringReplace, str, str, `%%hex%, % Chr("0x" . hex), All Else Break Return, str } Base64Encode(String) { static CharSet := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" VarSetCapacity(Output,Ceil(Length / 3) << 2) Index := 1, Length := StrLen(String) Loop, % Length // 3 { Value := Asc(SubStr(String,Index,1)) << 16 | Asc(SubStr(String,Index + 1,1)) << 8 | Asc(SubStr(String,Index + 2,1)) Index += 3 Output .= SubStr(CharSet,(Value >> 18) + 1,1) . SubStr(CharSet,((Value >> 12) & 63) + 1,1) . SubStr(CharSet,((Value >> 6) & 63) + 1,1) . SubStr(CharSet,(Value & 63) + 1,1) } Length := Mod(Length,3) If Length = 0 ;no characters remaining Return, Output Value := Asc(SubStr(String,Index,1)) << 10 If Length = 1 { Return, Output ;one character remaining . SubStr(CharSet,(Value >> 12) + 1,1) . SubStr(CharSet,((Value >> 6) & 63) + 1,1) . "==" } Value |= Asc(SubStr(String,Index + 1,1)) << 2 ;insert the third character Return, Output ;two characters remaining . SubStr(CharSet,(Value >> 12) + 1,1) . SubStr(CharSet,((Value >> 6) & 63) + 1,1) . SubStr(CharSet,(Value & 63) + 1,1) . "=" }
Я не вижу, как получить правильный результат и что не так с кодом? :(
0 ответов на вопрос
Похожие вопросы
-
3
Как я могу "инвертировать" структуру каталогов?
-
6
Насколько хороша защита паролем Word?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
-
7
Запустить синергетический клиент при загрузке в Mac OS X
-
4
Как синхронизировать скрипты GreaseMonkey между компьютерами?
-
1
программное обеспечение для шифрования портативных носителей, которое работает как на Mac OSX, так и...
-
12
Каков наиболее практичный метод обеспечения безопасности домашней беспроводной сети?
-
6
Маленький, легкий текстовый редактор / блокнот со встроенным надежным шифрованием?
-
2
AutoHotkey: проблема с назначением CAPS LOCK для ALT-TAB
-
2
Есть ли кто-нибудь, использующий аппаратно зашифрованный жесткий диск на своих ноутбуках?