Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Encrypt XML 
:(
    Опции темы
N1ko
Дата 17.5.2010, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Шифрую XML файл посредством RijndaelManaged. Всё основное время xml находится в зашифрованом состоянии, и как только нужно получить из него данные мы его дешифруем, всё вытигиваем и сразу же обратно шифруем. На моей машине всё работает прекрастно. Но вот когда делаю Release и запускаю exe на другой машине, сразу прога начинает ругаться - Bad data. В чём может быть проблема?

Вот класс, который шифрует и дешифрует xml.
Код

  public CryptoSystem()
        {
            CspParameters _cspParams = new CspParameters();
            _cspParams.KeyContainerName = "F;43h1Xv+16dBm^f";
            _cspParams.Flags = CspProviderFlags.NoFlags;
            rsaKey = new RSACryptoServiceProvider(_cspParams);
        }
        #endregion


        #region Methods
        public void Encrypt(XmlDocument Doc, string ElementToEncrypt, string EncryptionElementID, string KeyName)
        {

            XmlNodeList _elementToEncrypt = Doc.GetElementsByTagName(ElementToEncrypt);
            RijndaelManaged _sessionKey = new RijndaelManaged();
            _sessionKey.KeySize = 256;
            EncryptedXml _encrXml = new EncryptedXml();
            EncryptedKey _encrKey = new EncryptedKey();
            byte[] encryptedKey = EncryptedXml.EncryptKey(_sessionKey.Key, rsaKey, false);
            _encrKey.CipherData = new CipherData(encryptedKey);
            _encrKey.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSA15Url);
            KeyInfoName keyName = new KeyInfoName();
            keyName.Value = KeyName;
            _encrKey.KeyInfo.AddClause(keyName);
            _encrXml.AddKeyNameMapping(KeyName, rsaKey);
            int r = _elementToEncrypt.Count;
            for (int i = 0; i < r; i++)
            {
                byte[] encryptedElement = _encrXml.EncryptData((XmlElement)_elementToEncrypt[0], _sessionKey, false);
                EncryptedData ed = new EncryptedData();
                ed.CipherData = new CipherData(encryptedElement);
                ed.Type = EncryptedXml.XmlEncElementUrl;
                ed.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncAES256Url);
                ed.KeyInfo.AddClause(new KeyInfoEncryptedKey(_encrKey));
                EncryptedXml.ReplaceElement((XmlElement)_elementToEncrypt[0], ed, false);
            }
            if (_sessionKey != null) _sessionKey.Clear();
        }

        public void Decrypt(XmlDocument Doc, string KeyName)
        {
            EncryptedXml exml = new EncryptedXml(Doc);
            exml.AddKeyNameMapping(KeyName, rsaKey);
            exml.DecryptDocument();
        }


Это сообщение отредактировал(а) N1ko - 17.5.2010, 21:05
PM MAIL ICQ   Вверх
N1ko
Дата 20.5.2010, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Ребят, хелп плз.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.