Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

[C#] Шифрование и дешифрование...

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 18.09.2011, 21:30   #1
 Разведчик
Аватар для iVs.Dark
 
iVs.Dark на правильном путиiVs.Dark на правильном пути
Регистрация: 30.07.2011
Сообщений: 19
Популярность: 115
Сказал(а) спасибо: 34
Поблагодарили 32 раз(а) в 30 сообщениях
Отправить сообщение для iVs.Dark с помощью ICQ Отправить сообщение для iVs.Dark с помощью Skype™
 
По умолчанию [C#] Шифрование и дешифрование...

Помогите с кодом для шифровки и дешифровки строки...

В php используется такой код:
Код:
function encrypt( $string )  
{  
  $key = ‘BXcfTYewQ’;  
  $result = "";  
  for( $i = 1; $i <= strlen( $string ); $i++ )  
  {  
    $char = substr( $string, $i - 1, 1 );  
    $keychar = substr( $key, ( $i % strlen( $key ) ) - 1, 1 );  
    $char = chr( ord( $char ) + ord( $keychar ) );  
    $result .= $char;  
  }  
  return $result;  
}  
//echo encrypt(abcdefgh);
   
function decrypt( $string )  
{  
  $key = ‘BXcfTYewQ’;  
  $result = "";
  for( $i = 1; $i <= strlen( $string ); $i++ )  
  {  
    $char = substr( $string, $i - 1, 1 );  
    $keychar = substr( $key, ( $i % strlen( $key ) ) - 1, 1);  
    $char = chr( ord( $char ) - ord( $keychar ) );  
    $result .= $char;  
  }  
  return $result;  
} 
//echo decrypt(encrypt(abcdefgh));
Результат работы (то что в комментариях):
Код:
start encrypt:
ò¤»Ç˺ÀÍ
end;

start decrypt:
abcdefgh
end;

Если ли что-то подобное в C#? Обязательна совместимость с написанным выше! Нужно для шифрования данных на сервере и последующей дешифровки их в программе, ну и использования....

Добавлено через 46 минут
Эм.. еще одна проблема, код для php преобразует кириллицу в полную чушь... что можно сделать?
________________
«Шрёдингер ходил по комнате в поисках котёнка, а тот сидел в коробке ни жив ни мертв.»

Последний раз редактировалось iVs.Dark; 18.09.2011 в 22:16. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 18.09.2011, 22:29   #2
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: [C#] Шифрование и дешифрование...

мм если не ошибаюсь...
Код:
	public static string Encrypt(string toEncrypt, string key, bool useHashing)
		 {
		        byte[] buffer;
		        byte[] bytes = Encoding.UTF8.GetBytes(toEncrypt);
		        if (useHashing)
		        {
		            buffer = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(key));
		        }
		        else
		        {
		            buffer = Encoding.UTF8.GetBytes(key);
		        }
		        TripleDESCryptoServiceProvider provider2 = new TripleDESCryptoServiceProvider {
		            Key = buffer,
		            Mode = CipherMode.ECB,
		            Padding = PaddingMode.PKCS7
		        };
		        byte[] inArray = provider2.CreateEncryptor().TransformFinalBlock(bytes, 0, bytes.Length);
		        return Convert.ToBase64String(inArray, 0, inArray.Length);
		}
		 
		   
	   public static string Decrypt(string toDecrypt, string key, bool useHashing)
	    {
	        byte[] buffer;
	        byte[] inputBuffer = Convert.FromBase64String(toDecrypt);
	        if (useHashing)
	        {
	            buffer = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(key));
	        }
	        else
	        {
	            buffer = Encoding.UTF8.GetBytes(key);
	        }
	        TripleDESCryptoServiceProvider provider2 = new TripleDESCryptoServiceProvider {
	            Key = buffer,
	            Mode = CipherMode.ECB,
	            Padding = PaddingMode.PKCS7
	        };
	        byte[] bytes = provider2.CreateDecryptor().TransformFinalBlock(inputBuffer, 0, inputBuffer.Length);
	        return Encoding.UTF8.GetString(bytes);
	    }
Код:
        public static string A(string b, string c, bool d)
        {
            byte[] keyArray;
            var toEncryptArray = Convert.FromBase64String(b);

            if (d)
            {
                var hashmd5 = new MD5CryptoServiceProvider();
                keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes(c));
            }
            else
                keyArray = Encoding.UTF8.GetBytes(c);

            var tdes = new TripleDESCryptoServiceProvider
                           {
                               Key = keyArray,
                               Mode = CipherMode.ECB,
                               Padding = PaddingMode.PKCS7
                           };

            var cTransform = tdes.CreateDecryptor();
            var resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

            return Encoding.UTF8.GetString(resultArray);
        }
  Ответить с цитированием
Старый 18.09.2011, 22:56   #3
 Разведчик
Аватар для iVs.Dark
 
iVs.Dark на правильном путиiVs.Dark на правильном пути
Регистрация: 30.07.2011
Сообщений: 19
Популярность: 115
Сказал(а) спасибо: 34
Поблагодарили 32 раз(а) в 30 сообщениях
Отправить сообщение для iVs.Dark с помощью ICQ Отправить сообщение для iVs.Dark с помощью Skype™
 
По умолчанию Re: [C#] Шифрование и дешифрование...

Цитата:
Сообщение от warl0ckПосмотреть сообщение
мм если не ошибаюсь...

не пашет
___
можно любой другой способ, мне главное чтобы корректно расшифровывалось с php в C# плюс желательна поддержка кириллицы.

Добавлено через 5 минут
вроде нашел, пока не знаю как работает с кириллицей т.к. это только расшифровка....

Код:
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            des.Mode = CipherMode.ECB;
            des.Padding = PaddingMode.Zeros; 

            byte[] key = Encoding.UTF8.GetBytes("abcdefgh");
            byte[] IV = Encoding.UTF8.GetBytes("abcdefgh");
            ICryptoTransform transformer = des.CreateDecryptor(key, IV);
            byte[] s = Convert.FromBase64String("/PvORPIS2n4="); //"/PvORPIS2n4=" = "abc"
            byte[] t = transformer.TransformFinalBlock(s, 0, s.Length);

            MessageBox.Show(Encoding.UTF8.GetString(t));
Добавлено через 10 минут
Да, кириллицу превращает в бред.. в C# достаточно будет UTF8 поменять на ASCII...
хмхм... замена UTF8 на Encoding.Default.GetString(t) - решила все проблемы...

Добавлено через 19 минут
Вот если кому-то понадобится:

Код php:
Код:
<?
function kf_encrypt($str)
{
$data    = "";
$td      = mcrypt_module_open('des', '', 'ecb', '');
$ckey    = 'abcdefgh';
$iv      = 'abcdefgh';
mcrypt_generic_init($td, $ckey, $iv);
$data    = mcrypt_generic($td, $str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $data;
}

$req = kf_encrypt('абвгд');
print base64_encode($req);
?>
Код C#:
Код:
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            des.Mode = CipherMode.ECB;
            des.Padding = PaddingMode.Zeros;

            byte[] key = Encoding.UTF8.GetBytes("abcdefgh");
            byte[] IV = Encoding.UTF8.GetBytes("abcdefgh");
            ICryptoTransform transformer = des.CreateDecryptor(key, IV);
            byte[] s = Convert.FromBase64String("GjpbD3chK6E=");
            byte[] t = transformer.TransformFinalBlock(s, 0, s.Length);

            MessageBox.Show(Encoding.Default.GetString(t));
________________
«Шрёдингер ходил по комнате в поисках котёнка, а тот сидел в коробке ни жив ни мертв.»

Последний раз редактировалось iVs.Dark; 18.09.2011 в 23:16. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
Hermein (19.09.2011)
Старый 19.09.2011, 14:44   #4
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: [C#] Шифрование и дешифрование...

А еще можно точно также, как в php, сделать)
Код:
//substr
string substr(string str, int start, int end){
string result = str.Remove(0,start);
result+=result.Remove((end-start),result.Length)
return result;
}
Вместо strlen() cв-во строки Length,
Вместо ord() приведение char к типу int,
Вместо chr() приведение int к char;
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
  Ответить с цитированием
Старый 19.09.2011, 14:55   #5
 Разведчик
Аватар для iVs.Dark
 
iVs.Dark на правильном путиiVs.Dark на правильном пути
Регистрация: 30.07.2011
Сообщений: 19
Популярность: 115
Сказал(а) спасибо: 34
Поблагодарили 32 раз(а) в 30 сообщениях
Отправить сообщение для iVs.Dark с помощью ICQ Отправить сообщение для iVs.Dark с помощью Skype™
 
По умолчанию Re: [C#] Шифрование и дешифрование...

Цитата:
Сообщение от •theSaboteur•Посмотреть сообщение
А еще можно точно также, как в php, сделать)
Код:
//substr
string substr(string str, int start, int end){
string result = str.Remove(0,start);
result+=result.Remove((end-start),result.Length)
return result;
}
Вместо strlen() cв-во строки Length,
Вместо ord() приведение char к типу int,
Вместо chr() приведение int к char;

я уже нашел, выше отписал, работает нормально и меня устраивает
________________
«Шрёдингер ходил по комнате в поисках котёнка, а тот сидел в коробке ни жив ни мертв.»
  Ответить с цитированием
Старый 19.09.2011, 14:58   #6
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: [C#] Шифрование и дешифрование...

iVs.Dark, Да, я вижу. Просто к слову сказал) Лишним не будет)
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обсуждение] Шифрование V.I.R.U.S. Общение и обсуждение 8 09.08.2011 11:14
[Помогите!] Шифрование! Илья БАРАН Общение и обсуждение, архив Point Blank 3 01.07.2010 18:43

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 12:29.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net