gpt4 book ai didi

C#-从流中序列化/反序列化DES加密文件

转载 作者:行者123 更新时间:2023-12-03 14:24:44 25 4
gpt4 key购买 nike

有没有人有如何将序列化数据加密到文件然后使用DES读回的示例?

我已经写了一些无法正常工作的代码,但是我宁愿看到一个新的尝试而不是追求我的代码。

编辑:很抱歉,忘了提及我需要使用XmlSerializer.Serialize/Deserialize的示例。

最佳答案

加密

public static void EncryptAndSerialize(string filename, MyObject obj, SymmetricAlgorithm key)
{
using(FileStream fs = File.Open(filename, FileMode.Create))
{
using(CryptoStream cs = new CryptoStream(fs, key.CreateEncryptor(), CryptoStreamMode.Write))
{
XmlSerializer xmlser = new XmlSerializer(typeof(MyObject));
xmlser.Serialize(cs, obj);
}
}
}

解密:
public static MyObject DecryptAndDeserialize(string filename, SymmetricAlgorithm key)    
{
using(FileStream fs = File.Open(filename, FileMode.Open))
{
using(CryptoStream cs = new CryptoStream(fs, key.CreateDecryptor(), CryptoStreamMode.Read))
{
XmlSerializer xmlser = new XmlSerializer(typeof(MyObject));
return (MyObject) xmlser.Deserialize(cs);
}
}
}

用法:
DESCryptoServiceProvider key = new DESCryptoServiceProvider();
MyObject obj = new MyObject();
EncryptAndSerialize("testfile.xml", obj, key);
MyObject deobj = DecryptAndDeserialize("testfile.xml", key);

您需要将MyObject更改为要序列化的对象的类型,但这是一般的想法。诀窍是使用相同的SymmetricAlgorithm实例进行加密和解密。

关于C#-从流中序列化/反序列化DES加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/965042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com