Dator > hur du krypterar en XML -fil programatically

  • hur du krypterar en XML -fil programatically


  • Företagen förlitar sig ofta på XML för att utbyta data , men att dela information kommer vid en risk . Kreditkortsnummer , telefonnummer , adresser , kundens namn och egna affärsinformation göra upp några områden av känsliga uppgifter. Vad kan vara lämpligt att dela med en kund , partner eller kund , kanske inte är säker med en annan . Lyckligtvis kan XML-data krypteras för att skydda den . Stegen nedan använder . NET Framework och C # , men XML- kryptering finns i Java och andra ramar också.

    Du behöver :
    Visual C # utvecklingsmiljön ( se avsnittet Resurser för en länk för att ladda ner en uttrycklig versionen gratis )

    kryptering och dekryptering av en XML -fil


    1
    Skapa ett XML- dokument som innehåller känsliga personuppgifter



    444. 444
    3
    50,00


    <; CreditCardNumber > 0000123456789000
    Visa
    Spara filen som " Order. xml " i en mapp som heter Order .
    3 .
    Skapa en konsol program i Visual Studio . Öppna Visual Studio . Välj " Arkiv-> Nytt projekt "och välj sedan ikonen för " Console Application . " Lägg till en hänvisning till System. Security till projektet . Lägg till följande "använder " satser till början av ditt program filen :

    using System;
    hjälp System. Security. Cryptography ;
    hjälp System. Security. Cryptography. Xml ;
    använder System. Text ;
    använder systemet. Xml;
    4
    Läs i XML- filen . Inom det huvudsakliga metoden för ditt program , instansiera ett XMLDocument objekt och in XML-filen in i det:

    XMLDocument XMLDoc=new XMLDocument () ;
    xmlDoc. Load ( " c : \ \ Order \ \ order. xml " ) .
    5
    Skapa en krypteringsnyckel . Det finns ett antal att välja mellan , med varierande styrkor och använder olika typer av nycklar ( se " Kryptografi i . Net " i avsnittet Resurser ) . Det här exemplet använder TripleDES kryptering :

    TripleDESCryptoServiceProvider encryptionKey=new TripleDESCryptoServiceProvider () ;
    6 .
    Isolera ett XML- element från din fil för att kryptera och instansiera en XmlElement objekt att begränsa den. Att kryptera hela filen , välj dess rot element. I detta exempel är roten noden "Order " :

    XmlElement orderElem=xmlDoc. SelectSingleNode ( "Order " ) som XmlElement ,

    Om du ville att kryptera bara Kreditkortsnummer nod , skulle du skriva det så här :

    XmlElement orderElem=xmlDoc. SelectSingleNode ( " Order /kreditkortsnummer " ) som XmlElement ,
    7 .
    Kryptera data med hjälp av krypteringsnyckeln skapade ovan :

    EncryptedXml encXml=new EncryptedXml ( XMLDoc ) ,
    byte [ ] encryptedOrder=encXml. EncryptData ( orderElem , encryptionKey , false) .
    8
    Instantiera en EncryptedData objekt . Ställ det är URI egenskaper för både den krypterade XML-element och krypteringsalgoritmen :

    EncryptedData encryptedData=new EncryptedData () ;
    encryptedData. Type=EncryptedXml. XmlEncElementUrl ;
    encryptedData. EncryptionMethod=nya
    EncryptionMethod ( EncryptedXml. XmlEncTripleDESUrl ) ,
    9
    Ställ CipherData. CipherValue egendom EncryptedData objektet till de uppgifter du krypterade ovan .

    encryptedData. CipherData=new CipherData ( ) ;
    encryptedData. CipherData. CipherValue=encryptedOrder ;
    10
    ersätta innehållet i XML- nod med det krypterade innehållet :

    EncryptedXml. ReplaceElement . ( orderElem , encryptedData , false) ;
    11
    Rädda krypterad xml :

    xmlDoc. Save ( " c : \ \ Order \ \ encryptedOrder . xml " ) .
    12
    att dekryptera de krypterade data , vända dig i grunden den process det här exemplet kommer data dekrypteras i samma program och använda samma variabel som . nyckel att krypteras den i en verklig situation skulle en skicka nyckeln till mottagaren i en separat fil från den krypterade xml ( eller dela det på annat sätt ) Det dekryptering kod följande sätt: .

    //få uppgifter taggnamn
    XmlElement encOrderElem=xmlDoc. GetElementsByTagName ( " EncryptedData " ) [ 0 ] som XmlElement ;

    //läsa in data i en EncryptedData motsatte
    EncryptedData encData=new EncryptedData () ;
    encData . LoadXml ( encOrderElem ) ,

    //dekryptera data med hjälp av nyckeln skapades ovan
    EncryptedXml encryptedXml=new EncryptedXml () ;
    byte [ ] decryptedOrder=encryptedXml. DecryptData ( encData , encryptionKey ) ,

    //Ersätt krypterad data med dekrypteras informationen i XML-dokument
    encryptedXml. ReplaceData ( encOrderElem , decryptedOrder ) ,
    //Spara annan fil
    xmlDoc. Save ( "c : \ \ Order \ \ decryptedOrder . xml " ) .

    tips och varningar


  • Ovanstående är ett mycket enkelt exempel på vad som kan vara en ytterst komplex process Kryptografi är ett stort område värdig omfattande studien. Se Referenser och resurser avsnitt i denna artikel för länkar till ytterligare din förståelse .
  • Ovanstående kod förutsätter att du har placerat dina prov XML-fil i en mapp som heter Order , som finns på roten av en enhet bokstäverna " C. " Om ditt system konfiguration skiljer sig eller du har skapat ditt prov filer i andra mappar , kom ihåg att ändra sökvägar i enlighet därmed.

Previous:Vilka är fördelarna med Java uppgradera ? Next:hur du skickar text och HTML e-postmeddelanden i php





Relaterade artiklar


  • eMachines t5048 specifikationer
  • hur man skriver ut i svartvitt bara med en Lexmark P4350
  • hur man får Windows Vista att känna igen mer än 3GB
  • hur man kan stoppa AOL från att be att installera Real Player
  • hur man kan få en iMac kamera på distans
  • hur man laddar en. pdf till en Sony Reader
  • hur du lägger till tomma rader till XML-dokument
  • Ta bort en fil med php
  • hur du gör din egen 3D-spel
  • hur man läser data från Access med hjälp av vb