Jus*_*ner 4 powershell base64 encoding autoit
我使用Ward的AutoIt机器码算法集合来获取AutoIt中字符串的base64编码.代码如下:
#Include "Base64.au3"
Dim $Encode = _Base64Encode("ps")
MsgBox(0, 'Base64 Encode Data', $Encode)
Run Code Online (Sandbox Code Playgroud)
运行时,我得到了结果:
cHM=
Run Code Online (Sandbox Code Playgroud)
然后我使用以下PowerShell代码获取相同字符串"ps"的base64编码:
$commands = 'ps'
$bytes = [System.Text.Encoding]::Unicode.GetBytes($commands)
$encodedString = [Convert]::ToBase64String($bytes)
$encodedString
Run Code Online (Sandbox Code Playgroud)
我得到的是:
cABzAA==
Run Code Online (Sandbox Code Playgroud)
事实上,PowerShell的结果就是我想要的.我想知道如何使用AutoIt获得相同的结果?我想这是一个字符编码问题,但我不确定.
谢谢.
当我运行这个脚本时:
#Include "Base64.au3"
$Decode = _Base64Decode("cABzAA==")
ConsoleWrite($Decode & @CRLF)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:0x70007300.基本上,这意味着存在'70'字符(p),'00'字符(nul),'73'字符,'00'字符.您可以使用以下函数在AutoIt中轻松重新创建此行为:
#Include "Base64.au3"
Dim $Encode = _Base64WEncode("ps")
ConsoleWrite($Encode & @CRLF)
Func _Base64WEncode($string)
Local $result = ""
Local $arr = StringSplit($string, "")
For $i = 1 To UBound($arr) - 1
$result &= $arr[$i] & Chr(0)
Next
$result = _Base64Encode($result)
Return $result
EndFunc
Run Code Online (Sandbox Code Playgroud)
结果是:cABzAA ==
有些hack-ish,但我认为它比完整的Unicode编码更受欢迎,如果这不是你将需要的.
| 归档时间: |
|
| 查看次数: |
3416 次 |
| 最近记录: |