protobuf-net的简单使用

2021-04-02  本文已影响0人  价值投机168
//有简单的加密和解密处理
//将对象序列化然后再还原出来
namespace ConsoleApp1
{
[ProtoContract]
public class People
{
    [ProtoMember(1)]
    public string[] to;

    [ProtoMember(2)]
    public string[] cc;
    [ProtoMember(3)]
    public DateTime time;
    [ProtoMember(4)]
    public string password;
}

class Program
{
    static void Main(string[] args)
    {
        string path = System.IO.Directory.GetCurrentDirectory() + "\\MailBoxCache";
        if (!System.IO.Directory.Exists(path))
        {
            System.IO.Directory.CreateDirectory(path);
        }

        Stream ss = File.Create(path + "\\teet.ll");
        Serializer.Serialize<People>(ss, new People()
        {
            to = new string[] { "hello", "hhh" },
            time = DateTime.Now,
            password = Convert.ToBase64String(Encoding.Unicode.GetBytes("\rpassword\r\n\n"))//简单加密
        });
        ss.Close();

        var ppp = Serializer.Deserialize<People>(File.Open(path + "\\teet.ll", FileMode.Open));

        string password = Encoding.Unicode.GetString(Convert.FromBase64String(ppp.password));//简单解密
        password = password.Replace("\r\n", "");//简单解密,把\r\n多余的去掉
        Console.WriteLine(ppp + "\r\n" + password);
    }
}

}

上一篇 下一篇

猜你喜欢

热点阅读