首页 Unity上使用Linq To XML为你的XML加密以及解密操作

Unity上使用Linq To XML为你的XML加密以及解密操作

举报
开通vip

Unity上使用Linq To XML为你的XML加密以及解密操作Unity上使用Linq To XML为你的XML加密以及解密操作 文字依然不会很长,内容绝对的受用对于为什么要对xml加密,众所周知的对于一些客户端的游戏或者是单机游戏,xml存档如果不做特殊处理(加密和隐藏)那么玩家自己是可以打开并且修改的。玩过红色警戒的童鞋都知道,可以通过修改参数可以让自己无敌。玩游戏的时候这样固然很爽,但是对于我们开发的游戏可不希望杯别人随意修改参数,那么加密就显得至关重要啦。文章来自【狗刨学习网】 代码同样是包含了基本的增删改查四个基本操作,但是对于每一个操作都是有加密和解密处理,代...

Unity上使用Linq To XML为你的XML加密以及解密操作
Unity上使用Linq To XML为你的XML加密以及解密操作 文字依然不会很长, 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 绝对的受用对于为什么要对xml加密,众所周知的对于一些客户端的游戏或者是单机游戏,xml存档如果不做特殊处理(加密和隐藏)那么玩家自己是可以打开并且修改的。玩过红色警戒的童鞋都知道,可以通过修改参数可以让自己无敌。玩游戏的时候这样固然很爽,但是对于我们开发的游戏可不希望杯别人随意修改参数,那么加密就显得至关重要啦。文章来自【狗刨学习网】 代码同样是包含了基本的增删改查四个基本操作,但是对于每一个操作都是有加密和解密处理,代码并没有做优化,反复的加密和解密是个不足之处。 测试如下: 简单的建立一个场景Text,可以只有一个主摄像机就行。在建立一个Text脚本,托给摄像机,text的代码如下: using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; using System; using System.Security.Cryptography; using System.Text; using System.IO; using System.Security.AccessControl; using System.Security.Principal; using System.Security.AccessControl; using System.Xml; using System.Xml.Serialization; public class LinqToXMLAndEncrypt { static string dataKey = SystemInfo.deviceUniqueIdentifier;//设置秘钥,根据 平台而定 //static string xmlpath = Application.persistentDataPath + @"myXML";//平台相 关的路径(移动端) static string xmlpath = Application.dataPath + @"myXML";//电脑上的路径,移动端没有这个访问权限 /// /// 初始化一个XML文件 /// public static void CreateXMLDocument() { de la mandíbula és més gran que 0.3M / m 22 en directe els millors 1 i els millors radial batec és més gran que 0,07 m/m 2 i la part superior de la cua con part greu desgast 3 i que s'executen fracàs 23 tornavís 1 i vora duresa prou o alta 2 i nanses Departament esquerdes 24 Serra de metalls Marc 1 i abans i després responsable galeria trenat, és no un avió dins eina elèctrica 25 1, i Part elèctrica fracàs 2 i mecànica part danyat no pot córrer 26 roda 1 i restants diàmetre diàmetre original de gruix 2 i restant cèntim de gruix original de dos terços 3, segons tramitació situació roda consum força complir no processament requisits 27 1 de diamant i per la direcció de diamant acostar implementació 28 diversos mesura 1 i els plans de sector verificació de mesura d'aplicació individual de ferralla 29 altra eina 1 i per la situació específica mitjançant l'ús que va proposar fer supervisor de tecnologia eina validació 18 article màquina i proporciona eina de treball equipades amb: Eines equipades amb fixes es refereix a la màquina, tipus i grup un nombre fix d'eines comuns utilitzats, raonablement equipades i pagat, per tal de facilitar la producció, gestió d'enfortir, eines de desenvolupament proporcionen proves importants per quota de consum i d'emmagatzematge. 19 equipades amb principi és: basat en les característiques de producció i l'equip, estan equipats amb un conjunt de dues classes de maquinària, eines de transferència, un conjunt d'eines, ús d'eines personal de connexió, danyar pèrdua a càrrec de la responsable, sense una màquina eina treballadors de producció en principi estan equipats amb eines. Eines comunes, en principi, per la XElement root = new XElement("XMLContent", new XElement("IsFirstPlayGame", new XAttribute("MyVaule", "0")), new XElement("Herb1", new XAttribute("MyVaule", "0")), new XElement("Herb2", new XAttribute("MyVaule", "0")), new XElement("Herb3", new XAttribute("MyVaule", "0")), new XElement("Level01", new XAttribute("MyVaule", "0")),/*从level01到LevelDemo是用来表示这个关卡是 否玩过,其中MyVaule=1表示玩过,0表示没有*/ new XElement("Level02", new XAttribute("MyVaule", "0")), new XElement("Level03", new XAttribute("MyVaule", "0")), new XElement("Level04", new XAttribute("MyVaule", "0")), new XElement("Level05", new XAttribute("MyVaule", "0")), new XElement("Level06", new XAttribute("MyVaule", "0")), new XElement("LevelDemo", new XAttribute("MyVaule", "0")), new XElement("Level", new XAttribute("MyVaule", "0")), new XElement("Root", "root") ); root.Save(xmlpath); EncrtyptSaveXML(); } private static void EncrtyptSaveXML() { StreamReader sReader = File.OpenText(xmlpath); string xmlData = sReader.ReadToEnd(); sReader.Close(); string xxx = Encrypt(xmlData); StreamWriter writer; writer = File.CreateText(xmlpath); writer.Write(xxx); writer.Close(); } public static XElement DecrtyptLoadXML() { de la mandíbula és més gran que 0.3M / m 22 en directe els millors 1 i els millors radial batec és més gran que 0,07 m/m 2 i la part superior de la cua con part greu desgast 3 i que s'executen fracàs 23 tornavís 1 i vora duresa prou o alta 2 i nanses Departament esquerdes 24 Serra de metalls Marc 1 i abans i després responsable galeria trenat, és no un avió dins eina elèctrica 25 1, i Part elèctrica fracàs 2 i mecànica part danyat no pot córrer 26 roda 1 i restants diàmetre diàmetre original de gruix 2 i restant cèntim de gruix original de dos terços 3, segons tramitació situació roda consum força complir no processament requisits 27 1 de diamant i per la direcció de diamant acostar implementació 28 diversos mesura 1 i els plans de sector verificació de mesura d'aplicació individual de ferralla 29 altra eina 1 i per la situació específica mitjançant l'ús que va proposar fer supervisor de tecnologia eina validació 18 article màquina i proporciona eina de treball equipades amb: Eines equipades amb fixes es refereix a la màquina, tipus i grup un nombre fix d'eines comuns utilitzats, raonablement equipades i pagat, per tal de facilitar la producció, gestió d'enfortir, eines de desenvolupament proporcionen proves importants per quota de consum i d'emmagatzematge. 19 equipades amb principi és: basat en les característiques de producció i l'equip, estan equipats amb un conjunt de dues classes de maquinària, eines de transferència, un conjunt d'eines, ús d'eines personal de connexió, danyar pèrdua a càrrec de la responsable, sense una màquina eina treballadors de producció en principi estan equipats amb eines. Eines comunes, en principi, per la if (hasFile(xmlpath)) { StreamReader sReader = File.OpenText(xmlpath); string xmlData = sReader.ReadToEnd(); sReader.Close(); string xxx = Decrypt(xmlData); StreamWriter writer; writer = File.CreateText(xmlpath); writer.Write(xxx); writer.Close(); XElement root = XElement.Load(xmlpath); return root; } else return null; } public static void SetElementValue(string name, string value) { XElement root = DecrtyptLoadXML(); root.Element(name).SetAttributeValue("MyVaule", value); root.Save(xmlpath); EncrtyptSaveXML(); } /// /// 在根节点元素之前添加新的元素 /// /// 元素名字 /// 元素的值 public static void AddElement(string name, string value) { XElement root = DecrtyptLoadXML(); root.Element("Root").AddBeforeSelf(new XElement(name, new XAttribute("MyValue", value))); root.Save(xmlpath); EncrtyptSaveXML(); } /// /// 删除指定的元素 /// /// 要删除的元素名称 public static void RemoveElement(string name) de la mandíbula és més gran que 0.3M / m 22 en directe els millors 1 i els millors radial batec és més gran que 0,07 m/m 2 i la part superior de la cua con part greu desgast 3 i que s'executen fracàs 23 tornavís 1 i vora duresa prou o alta 2 i nanses Departament esquerdes 24 Serra de metalls Marc 1 i abans i després responsable galeria trenat, és no un avió dins eina elèctrica 25 1, i Part elèctrica fracàs 2 i mecànica part danyat no pot córrer 26 roda 1 i restants diàmetre diàmetre original de gruix 2 i restant cèntim de gruix original de dos terços 3, segons tramitació situació roda consum força complir no processament requisits 27 1 de diamant i per la direcció de diamant acostar implementació 28 diversos mesura 1 i els plans de sector verificació de mesura d'aplicació individual de ferralla 29 altra eina 1 i per la situació específica mitjançant l'ús que va proposar fer supervisor de tecnologia eina validació 18 article màquina i proporciona eina de treball equipades amb: Eines equipades amb fixes es refereix a la màquina, tipus i grup un nombre fix d'eines comuns utilitzats, raonablement equipades i pagat, per tal de facilitar la producció, gestió d'enfortir, eines de desenvolupament proporcionen proves importants per quota de consum i d'emmagatzematge. 19 equipades amb principi és: basat en les característiques de producció i l'equip, estan equipats amb un conjunt de dues classes de maquinària, eines de transferència, un conjunt d'eines, ús d'eines personal de connexió, danyar pèrdua a càrrec de la responsable, sense una màquina eina treballadors de producció en principi estan equipats amb eines. Eines comunes, en principi, per la { XElement root = DecrtyptLoadXML(); root.Element(name).Remove(); root.Save(xmlpath); EncrtyptSaveXML(); } /// /// 根据元素名查找元素对应的值 /// /// 元素名 /// public static string GetElementValue(string name) { XElement root = DecrtyptLoadXML(); XAttribute xattr = root.Element(name).Attribute("MyVaule"); string s = xattr.Value; EncrtyptSaveXML(); return s; } /// /// 内容加密,加密和解密采用相同的key,具体可以自己 定义,条件是必须是32位的 /// /// /// private static string Encrypt(string toE) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12348578902223367877723456789012"); 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); de la mandíbula és més gran que 0.3M / m 22 en directe els millors 1 i els millors radial batec és més gran que 0,07 m/m 2 i la part superior de la cua con part greu desgast 3 i que s'executen fracàs 23 tornavís 1 i vora duresa prou o alta 2 i nanses Departament esquerdes 24 Serra de metalls Marc 1 i abans i després responsable galeria trenat, és no un avió dins eina elèctrica 25 1, i Part elèctrica fracàs 2 i mecànica part danyat no pot córrer 26 roda 1 i restants diàmetre diàmetre original de gruix 2 i restant cèntim de gruix original de dos terços 3, segons tramitació situació roda consum força complir no processament requisits 27 1 de diamant i per la direcció de diamant acostar implementació 28 diversos mesura 1 i els plans de sector verificació de mesura d'aplicació individual de ferralla 29 altra eina 1 i per la situació específica mitjançant l'ús que va proposar fer supervisor de tecnologia eina validació 18 article màquina i proporciona eina de treball equipades amb: Eines equipades amb fixes es refereix a la màquina, tipus i grup un nombre fix d'eines comuns utilitzats, raonablement equipades i pagat, per tal de facilitar la producció, gestió d'enfortir, eines de desenvolupament proporcionen proves importants per quota de consum i d'emmagatzematge. 19 equipades amb principi és: basat en les característiques de producció i l'equip, estan equipats amb un conjunt de dues classes de maquinària, eines de transferència, un conjunt d'eines, ús d'eines personal de connexió, danyar pèrdua a càrrec de la responsable, sense una màquina eina treballadors de producció en principi estan equipats amb eines. Eines comunes, en principi, per la return Convert.ToBase64String(resultArray, 0, resultArray.Length); } /// /// 内容解密,千万记住解密和加密采用相同的key,必须 是32位 /// /// /// private static string Decrypt(string toD) { //加密和解密采用相同的key,具体值自己填,但是必须为 32位// byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12348578902223367877723456789012"); 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); } /// /// 判断XML文档是否存在 /// /// /// public static bool hasFile(string fileName) { return File.Exists(fileName); } /// /// 读取XML,返回XML的字符串 /// de la mandíbula és més gran que 0.3M / m 22 en directe els millors 1 i els millors radial batec és més gran que 0,07 m/m 2 i la part superior de la cua con part greu desgast 3 i que s'executen fracàs 23 tornavís 1 i vora duresa prou o alta 2 i nanses Departament esquerdes 24 Serra de metalls Marc 1 i abans i després responsable galeria trenat, és no un avió dins eina elèctrica 25 1, i Part elèctrica fracàs 2 i mecànica part danyat no pot córrer 26 roda 1 i restants diàmetre diàmetre original de gruix 2 i restant cèntim de gruix original de dos terços 3, segons tramitació situació roda consum força complir no processament requisits 27 1 de diamant i per la direcció de diamant acostar implementació 28 diversos mesura 1 i els plans de sector verificació de mesura d'aplicació individual de ferralla 29 altra eina 1 i per la situació específica mitjançant l'ús que va proposar fer supervisor de tecnologia eina validació 18 article màquina i proporciona eina de treball equipades amb: Eines equipades amb fixes es refereix a la màquina, tipus i grup un nombre fix d'eines comuns utilitzats, raonablement equipades i pagat, per tal de facilitar la producció, gestió d'enfortir, eines de desenvolupament proporcionen proves importants per quota de consum i d'emmagatzematge. 19 equipades amb principi és: basat en les característiques de producció i l'equip, estan equipats amb un conjunt de dues classes de maquinària, eines de transferència, un conjunt d'eines, ús d'eines personal de connexió, danyar pèrdua a càrrec de la responsable, sense una màquina eina treballadors de producció en principi estan equipats amb eines. Eines comunes, en principi, per la /// 返回XML的一串字符 public static string LoadXMLForString(bool isDecrypt=true) { if (hasFile(xmlpath)) { StreamReader sReader = File.OpenText(xmlpath); string dataString = sReader.ReadToEnd(); sReader.Close(); if (isDecrypt) { string xxx = Decrypt(dataString); return xxx; } else return dataString; } else { return null; } } } (注意一个问题,新增加的元素在一个方法里面是不会立马读出来 的,因为XML的操作都是延迟执行的。比如说上面的代码 GUIDebug.Log("ssssss:"+ LinqToXMLAndEncrypt.GetElementValue("Herb1"));处换成 GUIDebug.Log("ssssss:"+ LinqToXMLAndEncrypt.GetElementValue("ZHangXiaob"));就会报错) 核心代码中的 public static string LoadXMLForString(bool isDecrypt=true)方法是为了方便测试用的,它可以将整个XML读出成为 一串字符串 我定义一个参数bool isDecrypt=true,为true的时候读出来的是解密 的也就是正常的,为false的时候读出来是加密的 de la mandíbula és més gran que 0.3M / m 22 en directe els millors 1 i els millors radial batec és més gran que 0,07 m/m 2 i la part superior de la cua con part greu desgast 3 i que s'executen fracàs 23 tornavís 1 i vora duresa prou o alta 2 i nanses Departament esquerdes 24 Serra de metalls Marc 1 i abans i després responsable galeria trenat, és no un avió dins eina elèctrica 25 1, i Part elèctrica fracàs 2 i mecànica part danyat no pot córrer 26 roda 1 i restants diàmetre diàmetre original de gruix 2 i restant cèntim de gruix original de dos terços 3, segons tramitació situació roda consum força complir no processament requisits 27 1 de diamant i per la direcció de diamant acostar implementació 28 diversos mesura 1 i els plans de sector verificació de mesura d'aplicació individual de ferralla 29 altra eina 1 i per la situació específica mitjançant l'ús que va proposar fer supervisor de tecnologia eina validació 18 article màquina i proporciona eina de treball equipades amb: Eines equipades amb fixes es refereix a la màquina, tipus i grup un nombre fix d'eines comuns utilitzats, raonablement equipades i pagat, per tal de facilitar la producció, gestió d'enfortir, eines de desenvolupament proporcionen proves importants per quota de consum i d'emmagatzematge. 19 equipades amb principi és: basat en les característiques de producció i l'equip, estan equipats amb un conjunt de dues classes de maquinària, eines de transferència, un conjunt d'eines, ús d'eines personal de connexió, danyar pèrdua a càrrec de la responsable, sense una màquina eina treballadors de producció en principi estan equipats amb eines. Eines comunes, en principi, per la 来看看直接打开XML是什么样的 ,怎么样,这样就不用再担心玩 家破解了我们做的游戏了。
本文档为【Unity上使用Linq To XML为你的XML加密以及解密操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_589748
暂无简介~
格式:doc
大小:77KB
软件:Word
页数:16
分类:生活休闲
上传时间:2017-11-23
浏览量:35