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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перестановка байт. Конвертация в текст, См. в теме 
:(
    Опции темы
CasperSC
Дата 3.5.2010, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

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



Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
    class Program
    {
        
        
        static void Main(string[] args)
        {
            String pass = "pass"; //объявляем любую строку
            Byte[] passByte = Encoding.Unicode.GetBytes(pass); //перекодировываем её в массив байт и получаем кодировку для формата UTF-16
            Byte[] passByteResCrypt = new Byte[passByte.Length]; //создаём второй массив размером с первый массив для их взаимодействия

            for (int i = passByte.Length; i > 0; i -= 2)//в цикле делаем так: из  112 0, 97 0, 115 0, 115 0 получаем в другом массиве: 115 0, 115 0, 97 0, 112 0- то есть цифры в массиве по две переставляются.
            {
                passByteResCrypt[i - 2] = passByte[passByte.Length - i];
                passByteResCrypt[i - 1] = passByte[passByte.Length - i + 1];
            }

            pass = Convert.ToBase64String(passByteResCrypt);
            Console.WriteLine("Результат перестановки:          " + pass);

            for (int i = passByteResCrypt.Length; i > 0; i -= 2)
            {
                passByte[i - 2] = passByteResCrypt[passByteResCrypt.Length - i];
                passByte[i - 1] = passByteResCrypt[passByteResCrypt.Length - i + 1];
            }

            pass = Convert.ToBase64String(passByte);
            Console.WriteLine("Результат обратной перестановки: " + pass);
            Console.ReadKey();
        }
    }
}


Вот тут у меня не слово возвращается в первоначальный вид, а вообще какая-то каша из букв. Как сделать? Тут скорее вопрос как из массива байт, конвертировать в строку, так как это полюбому не правильно: 
Код

 pass = Convert.ToBase64String(passByteResCrypt);



Это сообщение отредактировал(а) CasperSC - 3.5.2010, 22:40
PM MAIL   Вверх
Экскалупатор
Дата 3.5.2010, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Цитата(CasperSC @  3.5.2010,  21:38 Найти цитируемый пост)
 Byte[] passByte = Encoding.Unicode.GetBytes(pass); 


а почему обратно так же не конвертируешь?

Encoding.Unicode.GetString(passByte)
PM MAIL ICQ   Вверх
CasperSC
Дата 3.5.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

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



О спасибо! Работает. Я просто этими всякими Encode, Unicode и прочими вещами не занимался никогда. Так простенькие приведения типов и Convert.что-то. 
Код

pass = Encoding.Unicode.GetString(passByte);

PM MAIL   Вверх
Экскалупатор
Дата 3.5.2010, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



CasperSC,  так вроде логичнее было бы сразу сделать просто обратное действие тем же способом. а ты что то другое использовал.
PM MAIL ICQ   Вверх
CasperSC
Дата 3.5.2010, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

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



Вообще пытаюсь научиться всяким перестановкам, работой с шифрованием и т.д. Короче мне нужно на программу написать адекватную защиту. Пока что мне это кажется не то чтобы сильно сложным, скорее вообще не понятным. Щас читаю про SecureString и шифрование с открытым и закрытым ключом читаю и не видя примеров ничего не понимаю почти. А 
Код

pass = Convert.ToBase64String(passByteResCrypt);

я взял из другого примера. Я вообще не пойму есть ли смысл перестановку делать в виде массива байт? 

Это сообщение отредактировал(а) CasperSC - 3.5.2010, 23:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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