在经典asp中将base64字符串转换为字节数组

问题描述 投票:0回答:2

我想将 64 位字符串转换为经典 asp 中的字节数组。将 Base 64 字符串解码为字节数组的代码如下:

Function Base64Decode(ByVal vCode)
        Dim oXML, oNode
        Set oXML = CreateObject("Msxml2.DOMDocument.3.0")
        Set oNode = oXML.CreateElement("base64")
        oNode.dataType = "bin.base64"
        oNode.text = vCode
        Base64Decode = oNode.nodeTypedValue
        Set oNode = Nothing
        Set oXML = Nothing
    End Function  

当我用一个小字符串调用这个函数时,这个函数就可以正常工作。但是当我用一个大字符串调用这个函数时,如下所示:

Dim simpleString
 simpleString = "MjY1MDEgICAgICAgICAgIAUNAwMAVBIZPXd3d3d3d3d3d3d3d3d3d3d3d3d3d3cHADk6Ojo6 Ojh3d3d3d3d3dw8KATsAOzo5OTg4d3d3d3d3Dg0IAgEAOzo4Nzc4OHd3d3cODgwIBQQBOjk5 ODY2Nzd3d3cNDQwKCAcDADs6OTc1NjZ3d3cNDQwKCQcEAgA7Ozs4NTY5d3cODQ0KCQcFAgA7 AAA7OTg7d3cPDQwKCQcGAwEAAAAAADs6d3cODAsKCAcGBQIAAAABAgEAd3cODQwJCAcHBgQC AQECAQAAd3cNDQwJCQkIBgQCAQEBADs7d3cPDQ0MCQcFBQQCAAABADs6d3cQDQ0MCQcGBQQC ADs7Ozo4d3cODQsLCgkIBwUDADs5Ojo2d3cLDAwMCwoJCAYDADs6Ojo2d3cMCwwNDQwKCggF AgA7Ozo3d3cNDg4ODg4NCwkHBQI7Ojg3d3cODg4ODg4ODAoIBgM7OTc3d3cODw4NDg4ODg0K BwQ5NzQyd3cODw8QEBAQEA8MCAQ6NTIwd3cODxITFBUUEhIRDQk7NDIwd3cPERYXGBoZFxcX FRMxMjEtd3cRFBkbHB4eHh0dHR8nLS8ud3d3d3d3d3d3d3d3d3d3d3d3d0dcHUk0cmEXfDNP gB4PGR4RGQxpIhFiCUlobhpURScuTmh4gl4iJXSENBxtgDeFcnM/YGt8eW1lOCGGVywAAAAA AAAAAAAMFRweJi4ySFNaWmVtdnx+gomMk5egp6evtLa3urwYGyEtP1JTWVtcXWpzdnh+f3+C hoaOkZqcnaGkpamtAAAAAAAAAAAADAAXAQsBDBYAChcAFhQJCRUIFRcVCRcVBwMDCBMSAAwN DAwLDBcKAAwLCQwBCg0MAAkLDAEBDAAJCQ4JBwAAAAAAAAAAAAMASBIZNXd3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3cCAzs1MTAud3d3d3d3d3d3d3c7Ojg0MS8tLC13d3d3d3d3ADs5ODYz MS4tLCl3d3d3d3cCADk3NjUzMS4tKygnd3d3dwUDADg2NTQyLy4sKicld3d3BQUDATo2NDMy MC4sKCUkd3d3BQUDATo3NDIxLy4qJiUmd3d3BgUDADo3NDEuKyooJyYmd3cLCAYFAwA3Mi8s KScnJSQld3cNCQgHBQE0Ly0qKCYlIiIkd3cQDAsKBgAzLSopJiUkJCMld3cQDw4NCToxKign JCIjJCUld3cSEhEQDTorJSUlIyIiJCYld3cWFhUTEh4nJCMjIiIiIyYmd3ccHBwbGiAjIiIi IiIjIiQld3chICAgICAhIiIiIiMkIyMkd3clIyIiIyMjIyQkJCQmJSR3d3cnJiUlJignJycn JygqJyR3d3cpKiopKiwsKywrKywsK3d3d3ctLS0uLjAwMDEwMC8uLXd3d3cxMTIyMjMzNDQ0 MzQ0d3d3d3d3NDQ0NDQ1NTY2NjZ3d3d3d3d3NTQ0NTY3Nzc2Nzd3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d2RfNzRaWnMgQT8zSYQgfmU6HCopMz1dDR0jCy4eHkUpbIYtcjd0I3RfCXcLdGJY Uz1lFVM7AAAAAAAAAAAAAAAAAAAAAAATHCAwMzs9PUNKTFBTVFZYXF1mbm5ucHV6fYGJipyg qBg1XGRrbHZ8goWJiouOk5+kpaaougAAAAAAAAAAAAAAAAAAAAAAAg4BDA4CEBcNAQwOEAsG EAwJFhUIDxEHBhISEREQDw0PERcFAhEHEQUFBREREREPDg4PDg0AAAAAAAAAAAAAAAAAAAAA AAMAPhIZLXd3d3d3d3d3d3d3d3d3d3d3d3d3d3csKikoJiMkKHd3d3d3d3d3dzEtKignJSEh JSR3d3d3d3d3MS8rKCcmJSMiIyMjd3d3d3cxLysoJiQkJSYlJCQkd3d3d3cxLSgmJCMjJCUl JCUkd3d3d3ctKiclJCMjIyMkJSQjd3d3d3cqJyYlJCQkJCQjJCMhd3d3d3cpJiUkJCUlJiUk JSQkd3d3d3coJiUlJSUmJyYlJicnd3d3d3cnJSUlJiYoKSUlJycmd3d3d3cmJSUmJycoKyko Kikmd3d3d3cmJSUmKSkpKSkqKykjd3d3d3cnJiYmKSsqKioqLCggd3d3d3coJycoKSstLy4t MCsmd3d3d3coKCgqKiwtLi8wMSwmd3d3d3cpKisrLC0uLi8wLiR3d3d3d3cqLC0t','Li8vMDEy MSR3d3d3d3ctLS4vMTIyMzQ1NTF3d3d3d3cwMDEyNDQzNDY3OwB3d3d3d3czNTQ1Nzc1NTc5 Awl3d3d3d3c4ODc4Ojo5Nzg7AXd3d3d3d3d3Ojo6OwA7OjsCA3d3d3d3d3d3Ojo6Ozs7AAED d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dytQSwtATFYPRUVOYzlXYUVOGjYSO1cxQCdFGlRk N2soS0hnHzNGXyQXOh1HOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWISY9UVhcZ2dzdXWB hIiWmpuco6amtrm8vjM0RmBkaHh5eoiPkpygqrGytboAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAEBEQDwMQEBAPDg8ODwIPAQ0ODQ0MFwEMAAAQBREQEQQPAxAPDg4MDQ0MDA0AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAMALxIZF3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzo5NjQz MS93d3d3d3d3d3cCOzo4NjQyMC8vLnd3d3d3dwUDADk3NTMxLy0tLCp3d3d3CAUDADk3NTMw LiwrKih3d3d3CQYDADk3NTIvLSsqKikod3cMCgcEATo2MzAuLCopKSkpd3cNCwkGATg0MS4s KikoKSkpd3cNDAoHATcyLywqKSgoKCkod3cPDgwIATcxLSspKCcnKCkod3cREQ4KAjUvKykn JycoKCkod3cSEhALBTgvKicnJicoKCkod3cVFBMPCjsuKSgnJiYoKSkod3cWFxYUEDsrKCcm JiYoKSkod3cYGRgYFx4mJicmJicoKiknd3d3d3d3d3d3d3d3d3d3d3d3dytwJUodKBQ0M2Is MURpZSM5Fh8lRzQPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAABgZmt2d3iamqKiqauxZnqOj5aWmaWnuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAADA8XDRcLFA0MBBcLBAMQFw4ICRcQDAcAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAIxIZFXd3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwQ5MTMyLnd3d3d3d3d3d3d3AQI3MjIx Li93d3d3d3d3d3cBOzo1MzIwLy0rd3d3d3d3dwQDADg1NDMxLy0rd3d3d3d3dwQCOzc1NDMx MC4sK3d3d3d3dwQBOjg2NDIyMC4sKnd3d3d3CQUCOzk2NDIyMC4tK3d3d3d3CggEADk2MzIy MC8vLCl3d3d3CwkGATg1MjEwMC8uKyh3d3d3DgsIAjk0MjAuLS0sKih3d3d3EQ8KAzgzMC4t KystLix3d3d3FBMPBTcxLi0sKystLit3d3d3GBcUCjcwLSsrLCwrKid3d3d3d3d3d3d3d3d3 d3d3d3d3d1FLWCNfSB5vc3RWdXcmK2BeIlVBcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhY255f4KEhZKYnJ+lsba7dYWHiIoAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwOCwICFxAPDwIQEBYJ Dw8MDg0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
  Base64Decode(simpleString)

然后我收到此错误:

500 - 内部服务器错误。
您要找的资源有问题,无法显示。

为什么我会收到此错误?我怎样才能消除这个错误?请帮我消除这个错误。

vbscript asp-classic base64
2个回答
1
投票

使用本文此处中的方法decodeBase64

private function decodeBase64(base64)
  dim DM, EL
  Set DM = CreateObject("Microsoft.XMLDOM")
  ' Create temporary node with Base64 data type
  Set EL = DM.createElement("tmp")
  EL.DataType = "bin.base64"
  ' Set encoded String, get bytes
  EL.Text = base64
  decodeBase64 = EL.NodeTypedValue
end function

'e.g.
decodeBase64(your_base64_string)

-4
投票

请尝试以下代码。它可以帮助您将 base64string 转换为字节数组。

byte[] bytes = System.Convert.FromBase64String(simpleString);
© www.soinside.com 2019 - 2024. All rights reserved.