Kuidas krüptimine XML-faili Programmiliselt

Krüptimine XML . tabalukud pilt Christopher Suurhallis Fotolia.com

Ettevõtted sõltuvad tihti XML andmeid vahetada, kuid jagada teavet langeb risk.Krediitkaardinumbreid, telefoninumbrid, aadressid, kliendi nime ja varaliste ettevõtte andmed moodustavad mõnes tundlikke andmeid.Mis võib olla asjakohane jagada ühe kliendi, partneri või kliendi, ei pruugi olla ohutu teise.Õnneks XML andmeid saab krüpteeritud, et seda kaitsta.Juhiseid kasutada .NET Framework ja C # keeles, kuid XML krüpteerimistehnikat olemas Java ja teiste raamistike samuti.

, mida te vajate

  • Visual C # arenduskeskkond (vt Resources link allalaadimiseks Expressversioon tasuta)

krüpteerimist XML-faili

  1. Loo XML-dokument, mis sisaldab tundlikke andmeid:

    & lt; Order & gt;
    & lt; Kirjed & gt;
    & lt; Punkt & gt; 444444
    & lt; Kogus & gt; 3 & lt; / Kogus & gt;
    & lt; CostPerItem & gt; 50.00 & lt; / CostPerItem & gt;
    & lt; / Punkt & gt;
    & lt; / Kirjed & gt;
    & lt; CreditCardNumber & gt; 0000123456789000 & lt; / CreditC

    ardNumber & gt;
    & lt; CreditCardType & gt; Visa & lt; / CreditCardType & gt;
    & lt; / Order & gt;

  2. Salvesta see fail \ "Order.xml \" kaust nimega tellimusi.

  3. Loo konsoolist Visual Studio.Avatud Visual Studio.Valige \ "File - & gt; New Project, \" ja seejärel valige ikoon \ "Console Application. \" Lisa viidet System.Security projekti.Lisa järgmist \ "kasutades \" avaldused üles oma programmi faili:

    kasutades System
    GO
    kasutades System.Security.Cryptography
    GO
    kasutades System.Security.Cryptography.Xml
    GO
    kasutades System.Text
    GO
    kasutades System.Xml;

  4. Loe XML-faili.Jooksul Main meetod oma programmi, instantiate xmlDocument objekti ja laadida XML-faili sinna:

    xmlDocument xmlDoc = new xmlDocument ()
    GO

    & amp; # 9; xmlDoc.Load (\ & amp; quot; c: \\\\ Tellimused \\\\ order.xml \ & amp; quot;);
  5. Loo krüpteerimise võtme.On mitmeid valida, erineva tugevused ja rakendades eri tüüpi võtmed (vt \ "Krüptograafia Net \" Resources).See näide kasutab TripleDES krüptimine:

    TripleDESCryptoServiceProvider EncryptionKey = new TripleDESCryptoServiceProvider ();

  6. isoleerida xml element oma faili krüptida ja instantiate XmlElement objekti ohjeldama.Krüptida terve faili, vali oma root element.Selles näites juur on sõlme \ "Order \":

    XmlElement orderElem = xmlDoc.SelectSingleNode (\ "Order \") kui XmlElement
    GO

    Kui soovid krüptida ainult CreditCardInformation sõlme, siis oleks seda kirjutadanagu see:

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

  7. krüpteerib kasutades krüpteerimise võti on loodud üle:

    EncryptedXml encXml = new EncryptedXml (xmlDoc)
    GO

    bait [] encryptedOrder = encXml.EncryptData (orderElem, EncryptionKey, false);
  8. instantiate EncryptedData objekti.Seadke see URI omadused nii krüpteeritud XML elemendid ja krüpteerimise algoritm:

    EncryptedData EncryptedData = new EncryptedData ()
    GO

    & amp; # 9; encryptedData.Type = EncryptedXml.XmlEncElementUrl

    GO

    & amp; # 9; encryptedData.EncryptionMethod= new & amp; # 9; & amp; # 9; & amp; # 9;& amp; # 9; & amp; # 9;

    EncryptionMethod (EncryptedXml.XmlEncTripleDESUrl);

  9. Määra CipherData.CipherValue vara EncryptedData objekti andmed, mida krüpteeritud eespool:

    encryptedData.CipherData = new CipherData ()
    GO

    & amp; # 9; encryptedData.CipherData.CipherValue = encryptedOrder;
  10. Vahetage sisu xml sõlm krüpteeritud sisu:

    EncryptedXml.ReplaceElement (orderElem, EncryptedData, false);

  11. Save krüpteeritud xml:

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

  12. dekrüpteerimiseks krüpteeritud andmeid, siis sisuliselt vastupidine protsess.Selles näites tuleb andmeid dekrüpteeritakse sama programmi ja kasutab sama muutuja võtmena, et krüpteeritud seda.Reaalses maailmas olukord, võiks saata võti saaja eraldi faili krüpteeritud XML (või jagada seda muul viisil).Dekodeerimiseks koodi järgmiselt:

    // Get andmeid tag nimi

    & amp; # 9; XmlElement encOrderElem = & amp; # 9; & amp; # 9; xmlDoc.GetElementsByTagName (\ & amp; quot; EncryptedData \ & amp; quot;)[0] kui XmlElement

    GO

    // Load andmeid arvesse EncryptedData vastuväiteid

    EncryptedData encData = new EncryptedData ()

    GO

    encData.LoadXml (encOrderElem)

    GO

    // dekrüpteerimiseks võtme abil loodud eespool

    EncryptedXmlencryptedXml = new EncryptedXml ()

    GO

    bait [] decryptedOrder = encryptedXml.DecryptData (encData, EncryptionKey)

    GO

    // Vahetage krüpteeritud andmeid Dekrüpteeritud andmed XML-dokumendi
    encryptedXml.ReplaceData (encOrderElem, decryptedOrder)

    GO

    // Säästa teise faili
    xmlDoc.Save (\ & amp; quot; c: \\\\ Tellimused \\\\ decryptedOrder.xml \ & amp; quot;);

Tips & amp;Hoiatused

  • Eespool on väga lihtne näide, mida võib olla väga keeruline protsess.Krüptograafia on suur ala väärt ulatuslik uuring.Vaata ja -allikad lõigud Selle artikli lingid edasi oma arusaamist.
  • Ülaltoodud kood eeldab, et oled asetanud proovi XML faili kausta nimega Tellimused, mis elab just sõita kirjatud \ "C. \" Kui teie süsteemi konfiguratsiooni erineb või oleteloodud oma proovi faile teistesse kaustadesse, pea meeles, et muuta faili teed vastavalt.

Resources

  • \ "Krüptograafia Net \"
  • \ "Microsoft Express Downloads: Lae Visual C # 2008 Express Edition \"
594
0
3
Xml