Oop 加密对象

Oop 加密对象,oop,encryption,md5,Oop,Encryption,Md5,我有一个像Employee这样的班级。此类有一些字段,如Id、名称、姓氏、任务(字符串数组)、isManager、TaskDueDates(日期时间数组)。 我想从这个对象生成一个文本。 我认为使用分隔符,这是一个基本的解决方案。例如,我的文本可以是:13;乔治;史密斯;{“任务1”、“任务2”、“任务3”},错误,{今晚,下一周} 但如果对象的某个字段包含此分隔符字符;这个程序不起作用。 生成文本后;我想通过使用一些密钥将其与MD5加密。这将生成一些加密数据,如asp.net viewstat

我有一个像Employee这样的班级。此类有一些字段,如Id、名称、姓氏、任务(字符串数组)、isManager、TaskDueDates(日期时间数组)。 我想从这个对象生成一个文本。 我认为使用分隔符,这是一个基本的解决方案。例如,我的文本可以是:13;乔治;史密斯;{“任务1”、“任务2”、“任务3”},错误,{今晚,下一周}

但如果对象的某个字段包含此分隔符字符;这个程序不起作用。 生成文本后;我想通过使用一些密钥将其与MD5加密。这将生成一些加密数据,如asp.net viewstate信息。 程序还将把加密数据解密到源对象

我该怎么做?
我使用的是Asp.NET2005

MD5没有加密功能。这是一个散列算法。如果使用某些数据创建MD5,则无法使用哈希创建数据。有关更多详细信息,请参阅

对于您的问题:请尝试此链接
MD5没有加密功能。这是一个散列算法。如果使用某些数据创建MD5,则无法使用哈希创建数据。有关更多详细信息,请参阅

对于您的问题:请尝试此链接
首先,您无法解密MD5,您需要一个真正的加密算法。您可能需要使用AES256

至于字段,Unix一直使用字段分隔的文本,它们通常在任何字符前面加上“\”,这些字符通常是特殊的,但在这种情况下不应该是特殊的(如果您想在文本中使用“\”,那么就写“\”)。你可以偷


编辑:如果您使用的是ASP,为什么不将输出格式化为HTML?然后您可以将输出放在一个表中。

首先,您无法解密MD5,您需要一个真正的加密算法。您可能需要使用AES256

至于字段,Unix一直使用字段分隔的文本,它们通常在任何字符前面加上“\”,这些字符通常是特殊的,但在这种情况下不应该是特殊的(如果您想在文本中使用“\”,那么就写“\”)。你可以偷


编辑:如果您使用的是ASP,为什么不将输出格式化为HTML?然后您可以将输出放在一个表中。

正如答案中已经提到的,对于加密,您将需要使用AED或DES之类的工具

对于序列化,即将对象转换为字符串,您可以使用
创建自己的方案作为分隔符。处理输入包含
的情况,您将需要转换
到其他类似于
\。序列化对象的外观如下所示:

Name: Geor;ge

    3;Geor\;ge;Smith;{"Task1","Task2","Task3"};false;{this night,nextweek}
当转换回object时,只要在
之前找到
\
,您将知道此
是字符串的一部分,而不是实际的分隔符


关于使用语言序列化功能,是的,您应该能够做到这一点,但这取决于您使用的语言。

如答案中所述,对于加密,您需要使用AED或DES之类的工具

对于序列化,即将对象转换为字符串,您可以使用
创建自己的方案作为分隔符。处理输入包含
的情况,您将需要转换
到其他类似于
\。序列化对象的外观如下所示:

Name: Geor;ge

    3;Geor\;ge;Smith;{"Task1","Task2","Task3"};false;{this night,nextweek}
当转换回object时,只要在
之前找到
\
,您将知道此
是字符串的一部分,而不是实际的分隔符


关于使用语言序列化功能,是的,您应该能够做到这一点,但这取决于您使用的语言。

如果您希望对象采用人类可读的格式,请使用自动XML序列化,而不是手动序列化:

XmlSerializer formatter;

using (FileStream file = new FileStream (Path.Combine (Application.StartupPath, GetType ().ToString () + ".xml.template"), FileMode.Create))
{
        formatter = new XmlSerializer (typeof (G));
        formatter.Serialize (file, this);
}

使用XML序列化,确保XML文件中所需的成员是
public
<代码>私有的
和受保护的
将不会进行XML序列化。

如果您希望对象采用人类可读的格式,请使用自动XML序列化,而不是手动序列化:

XmlSerializer formatter;

using (FileStream file = new FileStream (Path.Combine (Application.StartupPath, GetType ().ToString () + ".xml.template"), FileMode.Create))
{
        formatter = new XmlSerializer (typeof (G));
        formatter.Serialize (file, this);
}

使用XML序列化,确保XML文件中所需的成员是
public
private
protected
将不会被XML序列化。

是否有其他方法代替使用分隔符?序列化可以用于此目标吗?是否有其他方法代替使用分隔符?序列化可以用于此目标吗?