代码之家  ›  专栏  ›  技术社区  ›  Kelvin

分别加密两个数据,并通过C语言中的rijndael导出为一个文件#

  •  0
  • Kelvin  · 技术社区  · 16 年前

    有两个按钮将生成两个数据。我需要实现的是分别加密它们并导出到同一个文件。然后我需要以后能解密它。

    是否可以使用CBC模式?使用同一个流通过第一个数据块的最后一个数据块加密第二个数据块的第一个数据块?(避免IV)

    我可以在欧洲央行模式下这样做?如果有人能详细说明这一点就好了。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Cory Charlton    16 年前

    您可以始终将这两个值存储为文件的单独属性。

    [Serializable]
    public class EncryptedValues
    {
        public string Value1 { get; set; }
        public string Value2 { get; set; }
    
        public static EncryptedValues FromXml(string xmlString)
        {
            if (!string.IsNullOrEmpty(xmlString))
            {
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(EncryptedValues));
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    using (StreamWriter streamWriter = new StreamWriter(memoryStream))
                    {
                        streamWriter.Write(xmlString);
                        streamWriter.Flush();
                        memoryStream.Flush();
                        memoryStream.Position = 0;
    
                        return (xmlSerializer.Deserialize(memoryStream) as EncryptedValues);
                    }
                }
            }
    
            return null;
        }
    
        public string ToXml()
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(EncryptedValues));
    
            using (MemoryStream memoryStream = new MemoryStream())
            {
                using (StreamWriter streamWriter = new StreamWriter(memoryStream))
                {
                    xmlSerializer.Serialize(streamWriter, o);
                    streamWriter.Flush();
                    memoryStream.Flush();
                    memoryStream.Position = 0;
    
                    using (StreamReader streamReader = new StreamReader(memoryStream))
                    {
                        return streamReader.ReadToEnd();
                    }
                }
            }
        }
    
    }