Unity中 XML读写与加密

这篇博客详细介绍了在Unity中如何进行XML文件的读写操作,并结合C#进行了数据加密的实现。通过创建XmlManager和DataManager类,实现了序列化、写入、加载和解密等功能,确保数据的安全存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整体思路解析

数据存储和加密的主要逻辑思路:

使用XmlSerializer类对需要保存的数据类进行序列化操作,得到一串字符串。
将得到的字符串使用RijndaeManaged类和ICrytoTransform类进行加密操作,获得加密之后的字符串。
根据平台类型,确定文件保存的路径。
使用StreamWriter类将字符串保存到文件中。

数据加载和解密的主要逻辑思路:

根据存档文件的路径,使用StreamReader类读取文件中的内容(一串加密过的字符串)。
使用RijndaeManaged类和ICrytoTransform类对读取的文件内容进行解密操作,获得一串解密后的字符串。
使用XmlSerializer类对解密后的字符串进行反序列化操作,获得具体的游戏数据,并使用数据对游戏中的数据进行转换操作。

具体实现
首先创建XmlManager类,此类用来序列化与写入操作:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using UnityEngine;

public class XmlManager {
    /// <summary>
    /// 加密和解密秘钥
    /// </summary>
    byte[] _keyArray = UTF8Encoding.UTF8.GetBytes("12348578902329367887724456789012");
    public bool HasFlie(string flieName)
    {
        return File.Exists(flieName);
    }
    /// <summary>
    /// 创建XML
    /// </summary>
    /// <param name="flieName"></param>
    /// <param name="dataString"></param>
    public void CreateXML(string flieName, String dataString)
    {
        StreamWriter writer;
        writer = File.CreateText(flieName);
        writer.Write(/*dataString*/Encrypt(dataString));
        writer.Close();
    }
    /// <summary>
    /// 加载XML
    /// </summary>
    /// <param name="flieName"></param>
    /// <returns></returns>
    public string LoadXML(string flieName)
    {
        StreamReader reader = File.OpenText(flieName);
        string dataString = reader.ReadT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值