De upload lijkt beschadigd: vergelijk hashes aan beide kanten
Een mislukte upload is geen bewijs dat de tunnel bytes heeft gewijzigd. Vergelijk het bedoelde bestand met het opgeslagen resultaat en zoek daarna de eerste grens waar ze uiteenlopen.
Ontvangers die een geüpload bestand niet kunnen openen, horen vaak dat de VPN het heeft beschadigd. Dat is een hypothese, geen waarneming, en hij is testbaar. Voordat u de tunnel aanraakt, stelt u vast of het object dat nu op de bestemming is opgeslagen, afwijkt van het object dat verzonden had moeten worden. Al het andere volgt uit dat antwoord.
Begin bij de bedoelde bytes, niet bij de klacht
Kies een onschadelijk bestand dat het probleem reproduceert, of het echte bestand als het beleid toestaat dat het de bronomgeving verlaat. Noteer twee dingen vóór de overdracht: de exacte grootte in bytes en een moderne inhoudshash. Bestandsnamen, tijdstempels en voorbeelden zijn metadata, en geen daarvan identificeert de inhoud.
Bereken de hash met een algoritme dat beide kanten kunnen uitvoeren, en schrijf op welke u hebt gebruikt. Een vergelijking tussen SHA-256 en MD5 is geen vergelijking, en een vergelijking tussen twee verschillende bestanden die toevallig dezelfde naam delen ook niet.
PS> Get-FileHash -LiteralPath "C:\uploads\report.csv" -Algorithm SHA256
Hash Path
---- ----
9F2C... C:\uploads\report.csv
Microsofts Get-FileHash-referentie documenteert de opdracht en de bijbehorende algoritmeparameter, precies het deel dat mensen overslaan wanneer een vergelijking een betekenisloze afwijking oplevert.
Eén hash per fase, hetzelfde algoritme
Bereken nu hetzelfde algoritme op het opgeslagen object waar het uiteindelijk staat, met een geautoriseerde methode in plaats van een kopie die door een ander hulpmiddel is gegaan. Het ontvangen bestand lokaal opslaan en die kopie hashen voegt een stap toe die u niet hebt getest.
Als de dienst een eigen integriteitswaarde toont, behandel die dan als een afzonderlijke waarneming. Een controlesom die de provider rapporteert, kan u vertellen wat de provider denkt te hebben opgeslagen, en dat is niet dezelfde bewering als wat uw client heeft verzonden.
Er zijn drie uitkomsten mogelijk, en ze wijzen in verschillende richtingen. Gelijke hashes betekenen dat de bytes ongewijzigd zijn aangekomen. Verschillende hashes met een bekende conversie betekenen dat de dienst opzettelijk een nieuw object heeft gemaakt. Verschillende hashes zonder conversie betekenen dat iets tussen de twee punten de inhoud heeft gewijzigd, en de volgende stap is de vroegste grens vinden waar dat gebeurde.
Scheid overdrachtsfout van transformatie
Een gedeeltelijke upload en een beschadigde upload zien er in een bestandsbrowser identiek uit en zijn verschillende fouten. Controleer of de overdracht is voltooid: een applicatielog dat een afgebroken verzoek toont, een opgeslagen bestand waarvan de grootte een voorvoegsel van de bron is, of een object dat in werkelijkheid een foutpagina is die onder de verwachte extensie is opgeslagen, wijzen allemaal op een onvolledige overdracht en niet op gewijzigde bytes.
Transformatie is de andere veelvoorkomende verklaring. Een dienst die afbeeldingen opnieuw comprimeert, CSV-regeleinden herschrijft of een document converteert, produceert rechtmatig een hash die van de bron afwijkt, en dat is geen corruptie. Vergelijk de fase die beweert de getrouwe kopie te zijn, niet het uiteindelijke presentatieformaat.
Vertraging en verlies horen bij een derde categorie. Ze kunnen een client laten time-outen, opnieuw laten proberen of laten opgeven, en niets daarvan impliceert dat bytes die de server accepteerde, stilletjes zijn gewijzigd. Kijk naar het overdrachtsresultaat voordat u iets aan de tunnel toeschrijft.
Probeer een tweede pad zonder alles te veranderen
Als de hashes echt verschillen en er geen conversie in het spel is, herhaal dan hetzelfde bestand, dezelfde client, hetzelfde protocol en dezelfde bestemming via een ander ondersteund pad, zoals een lokaal netwerk in plaats van de VPN. Wijzig één variabele. Client, eindpunt en hulpmiddel tegelijk wijzigen levert een resultaat op dat u niet kunt toeschrijven.
Houd de vergelijking eerlijk in beide richtingen. Een hash vertelt u dat twee punten het over de inhoud oneens of eens zijn; hij vertelt u niet welke kant betrouwbaar is, dus houd de verwachte waarde en de verificatie binnen het vertrouwensmodel waarop u werkelijk vertrouwt.
Sluit af met een concrete zin in het ticket: de overdracht stopte vroeg, de applicatie heeft het object getransformeerd, de opslag heeft het gewijzigd, of de bytes komen overeen en het lezen ervan is de fout. Elk daarvan heeft een andere eigenaar, en geen daarvan is standaard de VPN.