XML数据进行加密和大小写转换

XML数据进行加密和大小写转换,第1张

   XML数据一个最普通的问题就是数据的大小写 在进行数据转换时常常产生令人头疼的麻烦 下面就是一个 解决的办法      假设你有一些数据要发送到另外一个系统 它也识别XML格式的数据 而且要求全部大写 例子数据如下      例子 person xml      <Person>   <Name>   <First>net_lover</First>   <Last>Xianhui Meng</Last>   <ChineseName>孟宪会</ChineseName>   </Name>  </Person>  假设你要转换成如下的格式      例子 newperson xml      <PERSON>   <NAME>   <FIRST>NET_LOVER</FIRST>   <LAST>XIANHUI MENG</LAST>   <CHINESENAME>孟宪会</CHINESENAME>   </NAME>  </PERSON>  解决这个转换问题一般是用XPATH函数里的translate() 例如       <foo><xsl:value of select= translate( This is a test tis TIS ) /></foo>  转换后结果如下       <foo>ThIS IS a TeST</foo>  但是如何把全部的文字转换成大写呢?下面就是进行这样处理的代码      先定义两个变量       <xsl:variable name= uppercase >ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>   <xsl:variable name= lowercase >abcdefghijklmnopqrstuvwxyz</xsl:variable>  再进行转换       <foo><xsl:value of select= translate( This is a test $lowercase $uppercase) /></foo>  结果如下       <foo>THIS IS A TEST</foo>  对刚才的问题 可以编写XSL文件如下      例子 : person xsl      <?xml version= encoding= gb ?>  <xsl:stylesheet xmlns:xsl= version= >   <xsl:variable name= uppercase >ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>   <xsl:variable name= lowercase >abcdefghijklmnopqrstuvwxyz</xsl:variable>   <xsl:template match= / >   <PERSON>   <NAME>   <FIRST><xsl:value of select= translate(/Person/Name/First $lowercase $uppercase) /></FIRST>   <LAST><xsl:value of select= translate(/Person/Name/Last $lowercase $uppercase) /></LAST>   </NAME>   </PERSON>   </xsl:template>  </xsl:stylesheet>  启发      从上面的方法呢会想到什么呢?对数据进行加密!对了 用这种方法可以实现XML数据的加密      例子       <xsl:variable name= alphanumeric >ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz    </xsl:variable>      <xsl:variable name= encoded >   K aWXJBb cRdeAMfQgL yhij klEFzmYSnIo DpTZq rNsUtC uOPvVwGxH    </xsl:variable>      <foo><xsl:value of select= translate( This is a test $alphanumeric $encoded) /></foo>  加密后结果如下       <foo>Snr nr k NzrN</foo>  解密也很简单 只要把两个变量颠倒即可      <?xml version= encoding= gb ?>  <xsl:stylesheet xmlns:xsl= version= >   <xsl:variable      name= alphanumeric >ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz </xsl:variable>      <xsl:variable      name= encoded >K aWXJBb cRdeAMfQgL yhij klEFzmYSnIo DpTZq rNsUtC uOPvVwGxH </xsl:variable>      <xsl:template match= / >   <foo><xsl:value of select= translate( This is a test $alphanumeric $encoded) /></foo>   |||    <foo><xsl:value of select= translate( YS S rF r $encoded $alphanumeric ) /></foo>      </xsl:template>  </xsl:stylesheet>lishixinzhi/Article/program/net/201311/13900

/// /// 加密解密key 必须32位. 

/// private const string EncryptKey = "332h034r78152dfs8sf56sf05e615w2s"

//内容加密.

public static string Encrypt(string toE)

{

byte[] keyArray = UTF8Encoding.UTF8.GetBytes(EncryptKey)

RijndaelManaged rDel = new RijndaelManaged()

rDel.Key = keyArray

rDel.Mode = CipherMode.ECB

rDel.Padding = PaddingMode.PKCS7

ICryptoTransform cTransform = rDel.CreateEncryptor()

byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toE)

byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray,0,toEncryptArray.Length)

return Convert.ToBase64String(resultArray,0,resultArray.Length)

}

//内容解密

public static string Decrypt(string toD)

{

byte[] keyArray = UTF8Encoding.UTF8.GetBytes("332h034r78152dfs8sf56sf05e615w2s")

RijndaelManaged rDel = new RijndaelManaged()

rDel.Key = keyArray

rDel.Mode = CipherMode.ECB

rDel.Padding = PaddingMode.PKCS7

ICryptoTransform cTransform = rDel.CreateDecryptor()

byte[] toEncryptArray = Convert.FromBase64String(toD)

byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray,0,toEncryptArray.Length)

return UTF8Encoding.UTF8.GetString(resultArray)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11534780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存