Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Encrypting and Decrypting ContentDemonstrates how to encrypt and decrypt the content of an XML node using 128-bit CBC AES encryption. The input XML, available at http://www.chilkatsoft.com/data/fox.xml, is this: <root> <fox1>The quick brown fox jumps over the lazy dog</fox1> <fox2>The quick brown fox jumps over the lazy dog <child1>ABC</child1> <child2>XYZ</child2> </fox2> </root>
Use ChilkatAx-win32.pkg Procedure Test Handle hoXml Boolean iSuccess String sTemp1 Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End // The sample input XML is available at http://www.chilkatsoft.com/data/fox.xml Get ComLoadXmlFile Of hoXml "fox.xml" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoXml To sTemp1 Showln sTemp1 Procedure_Return End // Navigate to the "fox1" node, which is the 1st child: Get ComFirstChild2 Of hoXml To iSuccess // Encrypt the content: Get ComEncryptContent Of hoXml "myPassword" To iSuccess // Navigate back to the root: Send ComGetRoot2 To hoXml // Examine the new XML document: Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 // This is the XML w/ the encrypted content: // <root> // <fox1>1hTtf7XmO+78H+OIr5eWHIuXxP78KPeYrZbsD0HX4negO9ZRqYMBY4s46sPNp+Q+ // </fox1> // <fox2>The quick brown fox jumps over the lazy dog // <child1>ABC</child1> // <child2>XYZ</child2> // </fox2> // </root> // Now decrypt and show that the original content was restored: Get ComFirstChild2 Of hoXml To iSuccess Get ComDecryptContent Of hoXml "myPassword" To iSuccess Send ComGetRoot2 To hoXml Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 // Now encrypt the content of the "fox2" node. // First navigate to the "fox2" child. Get ComFindChild2 Of hoXml "fox2" To iSuccess Get ComEncryptContent Of hoXml "myPassword" To iSuccess Send ComGetRoot2 To hoXml Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 // This is the XML w/ the "fox2" encrypted content: // <root> // <fox1>The quick brown fox jumps over the lazy dog</fox1> // <fox2>1hTtf7XmO+78H+OIr5eWHIuXxP78KPeYrZbsD0HX4negO9ZRqYMBY4s46sPNp+Q+ // // <child1>ABC</child1> // <child2>XYZ</child2> // </fox2> // </root> // Notice that the *content* of the node is encrypted. The child nodes are NOT encrypted. // This is intentional. To encrypt the content + the subtrees rooted at a given node, // one would call ZipTree to transform the content and subtrees // to Base64-encoded compressed content, and then call // EncryptContent to encrypt. // Finally, decrypt the "fox2" content: Get ComFindChild2 Of hoXml "fox2" To iSuccess Get ComDecryptContent Of hoXml "myPassword" To iSuccess Send ComGetRoot2 To hoXml Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.