Hoe te versleutelen een XML-bestand via programmacode



Bedrijven vaak vertrouwen op XML gegevens uit te wisselen, maar delen van de informatie komt op een risico. Credit card nummers, telefoonnummers, adressen, klant namen en eigen bedrijfsgegevens maken sommige gebieden van gevoelige gegevens. Wat misschien wel passend om te delen met een klant, partner of klant, mogelijk niet veilig met een ander. Gelukkig, kunnen XML-gegevens worden gecodeerd om het te beschermen. De volgende stappen gebruiken het .net Framework en de C# taal, maar XML-coderingstechnieken bestaan in Java en andere kaders ook.

Wat die u nodig hebt

  • Een Visual C#-ontwikkelomgeving (Zie de sectie bronnen voor een link naar een uitdrukkelijke versie gratis downloaden)

Coderen en decoderen van een XML-bestand

  • Een XML-document maken dat gevoelige gegevens bevat:



    444444
    3
    50,00


    0000123456789000
    Visa

  • Sla dit bestand op als \"Order.xml\" in een map met de naam Orders.

  • Maak een consoletoepassing in Visual Studio. Open Visual Studio. Selecteer \"File--> nieuwe Project, \" en selecteer vervolgens het pictogram voor \"Console toepassing. \" een verwijzing naar System.Security toevoegen aan het project. Toevoegen van de volgende \"using\" verklaringen naar de top van uw programma-bestand:

    met behulp van systeem
    GAAN
    met behulp van System.Security.Cryptography
    GAAN
    met behulp van System.Security.Cryptography.Xml
    GAAN
    met behulp van System.Text
    GAAN
    met behulp van System.Xml;

  • Lees in het XML-bestand. Instantiëren van een object XmlDocument binnen de Main methode van uw programma, en het XML-bestand laden in het:

    XmlDocument xmlDoc = nieuwe XmlDocument()
    GAAN

      xmlDoc.Load(\"c:\\\\Orders\\\\order.xml\"); 
  • Een coderingssleutel maken. Er zijn een aantal om uit te kiezen, van uiteenlopende sterke punten en verschillende soorten toetsen in dienst (\"Cryptography in Zie. Net\"in de sectie bronnen). In dit voorbeeld maakt gebruik van TripleDES codering:

    TripleDESCryptoServiceProvider encryptionKey = nieuwe TripleDESCryptoServiceProvider();

  • Isoleren van een XML-element uit het bestand te versleutelen en een XmlElement-object om te bevatten het instantiëren. U wilt coderen het hele bestand, selecteer het hoofdelement. In dit voorbeeld is de root het knooppunt \"Order\":

    XmlElement orderElem = xmlDoc.SelectSingleNode(\"Order\") als XmlElement
    GAAN

    Als je alleen het knooppunt van de creditcard te versleutelen wilde, zou u het schrijven als dit:

    XmlElement orderElem = xmlDoc.SelectSingleNode(\"Order/CreditCardInformation\") als XmlElement;

  • Het coderen van de gegevens met de versleutelingssleutel gemaakt boven:

    EncryptedXml encXml = nieuwe EncryptedXml(xmlDoc)
    GAAN

      byte[] encryptedOrder = encXml.EncryptData(orderElem, encryptionKey, false); 
  • Een EncryptedData-object instantiëren. Stel het URI eigenschappen voor zowel de gecodeerde XML-elementen en de coderingsalgoritme:

    EncryptedData encryptedData = nieuwe EncryptedData()
    GAAN

      encryptedData.Type = EncryptedXml.XmlEncElementUrl 

    GAAN

      encryptedData.EncryptionMethod = new  

    EncryptionMethod(EncryptedXml.XmlEncTripleDESUrl);

  • De eigenschap CipherData.CipherValue van het EncryptedData-object ingesteld op de gegevens die u hierboven zijn gecodeerd:

    encryptedData.CipherData = nieuwe CipherData()
    GAAN

      encryptedData.CipherData.CipherValue = encryptedOrder; 
  • De inhoud van uw XML-knooppunt vervangen door de gecodeerde inhoud:

    EncryptedXml.ReplaceElement (orderElem, encryptedData, false);

  • Sla de gecodeerde xml:

    xmlDoc.Save(\"c:\\Orders\\encryptedOrder.xml\");

  • Om te decoderen van de gecodeerde gegevens, ongedaan kunt u in wezen het proces. In dit voorbeeld worden de gegevens zal worden gedecodeerd in hetzelfde programma en dezelfde variabele gebruiken als sleutel gecrypt het. In een echte wereld situatie, zou de sleutel naar de geadresseerde in een apart bestand verzendt vanuit de gecodeerde xml (of deel het op een andere manier). De decryptie-code als volgt:

    De gegevens ophalen door labelnaam

      XmlElement encOrderElem = xmlDoc.GetElementsByTagName(\"EncryptedData\")[0] as XmlElement 

    GAAN

    Laden gegevens in een EncryptedData bezwaar

      EncryptedData encData = new EncryptedData() 

    GAAN

      encData.LoadXml(encOrderElem) 

    GAAN

    Decoderen van de gegevens met behulp van de sleutel gemaakt boven

      EncryptedXml encryptedXml = new EncryptedXml() 

    GAAN

      byte[] decryptedOrder = encryptedXml.DecryptData(encData, encryptionKey) 

    GAAN

      // Replace the encrypted data with decrypted data in your xml documentencryptedXml.ReplaceData(encOrderElem, decryptedOrder) 

    GAAN

  // Save another filexmlDoc.Save(\"c:\\\\Orders\\\\decryptedOrder.xml\"); 
Tips & waarschuwingen
  • Het bovenstaande is een heel eenvoudig voorbeeld van wat een uiterst complex proces worden kan. Cryptografie is een uitgestrekt gebied uitgebreide studie waard. Zie de verwijzingen en bronnen secties van dit artikel voor koppelingen naar uw begrip verder.
  • De bovenstaande code wordt ervan uitgegaan dat u uw XML-voorbeeldbestand hebt geplaatst in een map met de naam Orders, die zich bevindt in de hoofdmap van een station letters \"C.\" als verschilt van de configuratie van uw systeem of u uw voorbeeldbestanden in andere mappen hebt gemaakt, moet u het bestandspaden dienovereenkomstig.

Gerelateerde Artikelen

Hoe lees ik een XML-bestand in T-SQL

Hoe lees ik een XML-bestand in T-SQL

De T-SQL "openrowset"-functie opent u een XML-bestand om te lezen van gegevens uit de gegevensset in een bestand dat is opgeslagen op uw databaseserver. Deze functie helpt u automatiseren van processen op uw databaseserver wanneer u een geëxport
Hoe lees ik een XML-bestand in JavaScript

Hoe lees ik een XML-bestand in JavaScript

XML (Extensible Markup Language) is de internationale standaard voor het definiëren van gegevens beschrijvingen om te werken op het Internet op verschillende besturingssystemen en browsers van het web. XML webservices ook gebruiken als de onderliggen
Hoe te versleutelen een EXE-bestand

Hoe te versleutelen een EXE-bestand

Spyware, malware en hackers zijn slechts enkele voorbeelden van de vele manieren die uw personal computer kan in gevaar worden gebracht. Of u een laptop die aangesloten op een draadloos netwerk of een desktop die aangesloten op een modem gebruikt, mo
Hoe te versleutelen een Batch-bestand

Hoe te versleutelen een Batch-bestand

Batch, ook bekend als. BAT, is een soort bestandsindeling die de capaciteit heeft om een aantal opdrachten doorlopen met Microsoft Disk Operating System, of MS DOS, of de Windows-opdrachtprompt. Dit maakt een. BAT bestand vrij gelijkaardig aan een ui
Hoe een XPS-bestand te converteren naar een XML-bestand

Hoe een XPS-bestand te converteren naar een XML-bestand

XPS is een indeling gemaakt door Microsoft en bekend als een XML-bestand voor de specificatie van de papier, volgens File Info. Het is een van het beschrijvingsbestand, vergelijkbaar met een PDF-bestand, dat informatie over de lay-out, het afdrukken
Hoe te ZIP-een Video bestand te verzenden via E-mail

Hoe te ZIP-een Video bestand te verzenden via E-mail

Wanneer u een bestand zip, u dat bestand comprimeert en het kleiner maken. Kunt u een kleiner bestand via e-mail, die kan dan worden opengesteld nadat de ontvanger heeft uitgepakt. Een video bestand zippen lijkt misschien lastig, maar het is echt een
Het weergeven van een XML-bestand op de Android

Het weergeven van een XML-bestand op de Android

Het Android operating system bevat een inheemse teksteditor die u gebruiken kunt om te bekijken en lezen van XML-bestanden. Dus als u bekijken een XML-bestand op uw Android telefoon of tablet wilt, kunt u dit doen zonder het downloaden van enige derd
Hoe lees ik een ETL-bestand

Hoe lees ik een ETL-bestand

Microsoft Windows registreert toepassing en systeemniveau waarschuwingen, fouten of andere gebeurtenissen naar een binaire bestand met de naam van de gebeurtenis traceerlogboek of ETL, die vervolgens kan worden gebruikt voor het oplossen van potentië
Hoe maak je een XML-toewijzing

Hoe maak je een XML-toewijzing

Als u wilt importeren en exporteren van XML-bestanden, moet u een XML-toewijzing die informatie van uw software naar een XML-bestand vertaalt. XML-toewijzingen worden gebruikt bij het ontwikkelen van applicaties en databases, omdat ze bieden een mani
Hoe maak je een HTML-bestand

Hoe maak je een HTML-bestand

HTML is het acroniem voor HyperText Markup Language, en het is een van de meest voorkomende programmeertalen gevonden in Internet programmeren. Zoals met elke programmeertaal, veel is om te worden geleerd om een meester op HTML en wanneer gebruikt in
Hoe lees ik een XML vanuit een webservice

Hoe lees ik een XML vanuit een webservice

U kunt een webservice die XML-gegevens zal lezen schrijven. In feite, XML is het inheemse formaat voor webservices in ASP.NET, die is wat toepassingen op andere frameworks (bijvoorbeeld Java, PHP enzovoort) geeft de mogelijkheid om met elkaar te comm
Hoe maak je een XSD uit een XML-bestand

Hoe maak je een XSD uit een XML-bestand

Extensible Markup Language (XML) biedt een basis voor gegevensstandaarden. XML kan ontwikkelaars Web lay-out van gegevens op een pagina met behulp van de recordsets. Een XML-schema (XSD) biedt de lay-out en de beschrijving voor elke record in het XML
Hoe een XML-bestand importeren naar SPSS

Hoe een XML-bestand importeren naar SPSS

SPSS is een pakket van de statistieken gebruikt voor het verwerken van grote datasets en het uitvoeren van statistische analyse algoritmen op hen. SPSS accepteert een verscheidenheid van dossierformaten als input, met inbegrip van de XML-bestandsinde
Hoe maak je XSL vanuit een XML-bestand

Hoe maak je XSL vanuit een XML-bestand

XSL is een taal van de stylesheet gebruikt voor het opmaken van elementen die zijn gemaakt in XML. XSL is daarom meestal geschreven door hand met een stylesheet-editor. XSL wordt ondersteund door de meeste grote Web development tools, waaronder Dream