none
Classic ASP: seit dem Update vom 11.07.2018 "System.Text.UTF8Encoding" Objekt kann nicht erstellt werden

    Frage

  • Hi,

    auf meinem Arbeitsrechner habe ich Windows 10 pro mit dem IIS und Classic ASP installiert. Zur Erstellung von Hashes benötige ich die Objekte "System.Security.Cryptography.MD5CryptoServiceProvider" und "System.Text.UTF8Encoding". Seit dem Windows update vom 11.07.2018 bekomme ich nur noch die Fehlermeldung "ActiveX-Komponenten kann kein Objekt erstellen"

    Auf meinem Webserver (Windows Server 2012 R2) trat zur gleichen Zeit dasselbe Problem auf. Hier konnte das Problem zum Glück (vorerst) durch Deinstallation des Updates KB4338419 behoben werden. 

    Auf dem Arbeitsrechner lassen sich die Updates jedoch nicht deinstallieren. Was kann man tun?

    Classic ASP; Windows 10 Pro (1803, Build 17134.191); KB4338419; IIS (Version 10.0.17134.1);Mscorlib.dll

     
    Freitag, 3. August 2018 07:21

Alle Antworten

  • Hi,

    poste doch bitte mal den Code, der den Fehler verursacht.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Freitag, 3. August 2018 07:43
  • Der code hat bis vor dem Update einwandfrei funktioniert. 

    ich habe ihn sowohl auf dem iis 10 von Windows 10, als auch im IIS auf windows server 2012 eingesetzt. Die Funktion war bei beiden Rechnern zeitgleich nicht mehr ausführbar. Beim Server konnte ich das Update KB4338419 deinstallieren. Danach funktionierte es wieder. Bei Windows 10 konnten die Updates nicht deinstalliert werden.

    Function Hash(HashType, Target)


        Dim PlainText

        If IsArray(Target) = True Then PlainText = Target(0) Else PlainText = Target End If

        With CreateObject("ADODB.Stream")
            .Open
            .CharSet = "Windows-1252"
            .WriteText PlainText
            .Position = 0
            .CharSet = "UTF-8"
            PlainText = .ReadText
            .Close
        End With

        Set UTF8Encoding = CreateObject("System.Text.UTF8Encoding")
        Dim PlainTextToBytes, BytesToHashedBytes, HashedBytesToHex

        PlainTextToBytes = UTF8Encoding.GetBytes_4(PlainText)

        Select Case HashType
            Case "md5": Set Cryptography = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") '< 64 (collisions found)
            Case "ripemd160": Set Cryptography = CreateObject("System.Security.Cryptography.RIPEMD160Managed")
            Case "sha1": Set Cryptography = CreateObject("System.Security.Cryptography.SHA1Managed") '< 80 (collision found)
            Case "sha256": Set Cryptography = CreateObject("System.Security.Cryptography.SHA256Managed")
            Case "sha384": Set Cryptography = CreateObject("System.Security.Cryptography.SHA384Managed")
            Case "sha512": Set Cryptography = CreateObject("System.Security.Cryptography.SHA512Managed")
            Case "md5HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACMD5")
            Case "ripemd160HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACRIPEMD160")
            Case "sha1HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA1")
            Case "sha256HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA256")
            Case "sha384HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA384")
            Case "sha512HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA512")
        End Select

        Cryptography.Initialize()

        If IsArray(Target) = True Then Cryptography.Key = UTF8Encoding.GetBytes_4(Target(1))

        BytesToHashedBytes = Cryptography.ComputeHash_2((PlainTextToBytes))

        For x = 1 To LenB(BytesToHashedBytes)
            HashedBytesToHex = HashedBytesToHex & Right("0" & Hex(AscB(MidB(BytesToHashedBytes, x, 1))), 2)
        Next

        If Err.Number <> 0 Then Response.Write(Err.description) Else Hash = LCase(HashedBytesToHex)

        On Error GoTo 0
    End Function

    Dienstag, 7. August 2018 11:39