Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
vahe
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 5
1

Цифры перевести в плавающий код

11.07.2013, 14:09. Просмотров 1129. Ответов 12
Метки нет (Все метки)

как цифры перевести на плавучем коды C#?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 14:09
Ответы с готовыми решениями:

Перевести слова в цифры
Нужно перевести слова в цифры на C#!!! Как это сделать?

Как перевести текст в цифры?
Есть текстовый файл с двумя столбиками цифр, разделенными табуляцией. Как из...

Введите 3 символа. Если символы – цифры, найдите и выведите их сумму и цифры, иначе выведите код символа
Помогите пожалуйста!!! Введите 3 символа. Если символы – цифры, найдите и...

Перевести код на PHP в код C#
Добрый день, ув. участники форума. <?php function valid_rnn($rnn) { ...

Можно ли, и если можно то как перевести код SQL в код С#
КОД ПРОГРАММЫ void __fastcall TForm1::SKChange(TObject *Sender) //Выбор...

12
Pocifik
14 / 14 / 2
Регистрация: 24.07.2012
Сообщений: 43
11.07.2013, 15:25 2
Прости, что?
0
vahe
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 5
11.07.2013, 15:31  [ТС] 3
cifri dlya serialport output cifri ne plavushiy, xachu shtob bil c plavushem codom
0
buntar
524 / 525 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
11.07.2013, 15:39 4
Лучший ответ Сообщение было отмечено как решение

Решение

Невероятное усилие, дало понять, что существует "плавающий код" (до этого я не знач что это), и связано с шифрованием:
Кликните здесь для просмотра всего текста
Шифрование при помощи "Плавающего Кода" Это один из самых сложных шифров, который практически невозможно расшифровать, не имея шифр-таблицы. Все дешифровочные операции построены либо на анализе повторяемости отдельных знаков в шифре, либо на анализе возможного смысла послания. Данный шифр хорош тем и хорош, что в нём нет ни одного повторяющегося знака. Т.е. одна и та же буква может обозначаться десятком разных меняющихся символов. Более того, каждое новое послание будет закодировано новым алгоритмом. А выглядит всё это очень просто. Сначала выбираем шифр-таблицу. Вы можете взять абсолютно любую книгу. Хоть "Войну и мир". Конечно, необходимо, чтобы у дешифровальщика была идентичная книга один в один с вашей. Или вы можете договориться, что вашей шифр-таблицей будет еженедельная газета "Труд", выходящая по пятницам. Далее всё очень просто. В шифре сначала указываете номер страницы, затем парами номер строки (сверху вниз) и номер буквы в строке. Номер строки можно указать и буквенным обозначением.
7
vahe
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 5
11.07.2013, 16:00  [ТС] 5
gde iskat codi dlya normalniy codi perevesti plavuyuchiy codi
0
nxtech
77 / 59 / 9
Регистрация: 26.06.2013
Сообщений: 198
11.07.2013, 18:03 6

Не по теме:

buntar, телепат?:D


vahe, есть пример реализации на Си на русской странице википедии. Перевести на C#, думаю, не будет сложности.
1
buntar
524 / 525 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
12.07.2013, 08:54 7
Цитата Сообщение от nxtech Посмотреть сообщение

Не по теме:

buntar, телепат?

Нет, просто Google меня не банит
0
nio
12.07.2013, 09:59
  #8

Не по теме:

Цитата Сообщение от vahe Посмотреть сообщение
cifri dlya serialport output cifri ne plavushiy, xachu shtob bil c plavushem codom
ничего не нужно, пиши, как умеешь, и так ни фига не понятно, дополнительно шифровать не обязательно:D

4
vahe
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 5
12.07.2013, 15:50  [ТС] 9
A na C# kak?
0
nxtech
77 / 59 / 9
Регистрация: 26.06.2013
Сообщений: 198
13.07.2013, 09:12 10
Ну, там практически дословно можно перевести на C#. Единственное, нужно обратить внимание на типы.

KeeLog
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public static class KeeLog
{
    public static uint Encrypt(uint data, ulong key)
    {
        uint x = data;
        for (int i = 0; i < 528; ++i)
        {
            x = (x >> 1) ^ ((Bit(x, 0) ^ Bit(x, 16) ^ unchecked((uint)Bit(key, i & 63)) ^ Bit(NLF, NLSFR(x, 1, 9, 20, 26, 31))) << 31);
        }
        return x;
    }
    public static uint Decrypt(uint data, ulong key)
    {
        uint x = data;
        for (int i = 0; i < 528; ++i)
        {
            x = (x << 1) ^ Bit(x, 31) ^ Bit(x, 15) ^ unchecked((uint)Bit(key, (15 - i) & 63)) ^ Bit(NLF, NLSFR(x, 0, 8, 19, 25, 30));
        }
        return x;
    }
    private static uint Bit(uint x, int n)
    {
        return ((x >> n) & 1);
    }
    private static ulong Bit(ulong x, int n)
    {
        return ((x >> n) & 1);
    }
    private static int NLSFR(uint x, int a, int b, int c, int d, int e)
    {
        return unchecked((int)(Bit(x, a) + Bit(x, b) * 2 + Bit(x, c) * 4 + Bit(x, d) * 8 + Bit(x, e) * 16));
    }
 
    private const uint NLF = 0x3A5C742E;
}

Пример использования
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
class Program
{
    static void Test_IntegerArray()
    {
        ulong key = 0x0123456789ABCDEFul;
 
        int[] src_arr = { -2, -1, 0, 1, 2 };
        Console.WriteLine("Non encrypted array of 32-bit integers:");
        for (int i = 0; i < src_arr.Length; ++i)
        {
            Console.Write("{0:X8} ", src_arr[i]);
        }
        uint[] x = new uint[src_arr.Length];
        Console.WriteLine("\n\nEncrypted array of 32-bit integers: ");
        for (int i = 0; i < src_arr.Length; ++i)
        {
            x[i] = KeeLog.Encrypt(unchecked((uint)src_arr[i]), key);
            Console.Write("{0:X8} ", x[i]);
        }
        int[] ret_arr = new int[x.Length];
        Console.WriteLine("\n\nDecrypted array of 32-bit integers: ");
        for (int i = 0; i < x.Length; ++i)
        {
            ret_arr[i] = unchecked((int)KeeLog.Decrypt(x[i], key));
            Console.Write("{0:X8} ", ret_arr[i]);
        }
        Console.WriteLine("\n\n\n");
    }
 
    static void Test_String()
    {
        ulong key = 0xFEDCBA9876543210ul;
 
        // !!!
        // Должно выполняться: ((src_str.Length * sizeof(char)) % sizeof(uint)) == 0
        // Т.е. длина строки должна быть кратна размеру uint, т.к. мы упаковываем строку
        // в массив uint.
        string src_str = "This is a string";
        Console.WriteLine("Non encrypted string:\n" + src_str);
        uint[] x = new uint[src_str.Length * sizeof(char) / sizeof(uint)];
        Buffer.BlockCopy(src_str.ToCharArray(), 0, x, 0, src_str.Length * sizeof(char));
        Console.WriteLine("\nNon encrypted hexadecimal string representation:");
        for (int i = 0; i < x.Length; ++i)
        {
            Console.Write("{0:X8} ", x[i]);
        }
        Console.WriteLine("\n\nEncrypted hexadecimal string representation:");
        for (int i = 0; i < x.Length; ++i)
        {
            x[i] = KeeLog.Encrypt(x[i], key);
            Console.Write("{0:X8} ", x[i]);
        }
        Console.WriteLine("\n\nDecrypted hexadecimal string representation:");
        for (int i = 0; i < x.Length; ++i)
        {
            x[i] = KeeLog.Decrypt(x[i], key);
            Console.Write("{0:X8} ", x[i]);
        }
        char[] c = new char[x.Length * sizeof(uint) / sizeof(char)];
        Buffer.BlockCopy(x, 0, c, 0, x.Length * sizeof(uint));
        string str_ret = new String(c);
        Console.WriteLine("\n\nDecrypted string:\n" + str_ret + "\n\n");
    }
 
    static void Main(string[] args)
    {
        Test_IntegerArray();
        Test_String();
        Console.Write("Press any key to exit . . .");
        Console.ReadKey(true);
    }
}
2
vahe
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 5
15.07.2013, 15:16  [ТС] 11
a kak kontaktirovac s pragramu?

Добавлено через 7 минут
a kak kontaktirovac s pragramu?

Добавлено через 53 секунды
a kak kontaktirovac s pragramu?

 Комментарий модератора 
Не ленимся переключать язык в системе или же учимся пользоваться переводчиками, ломать голову над Вашими шифрами в каждом сообщении вряд-ли кто-то будет.
0
Nevermore_
72 / 72 / 30
Регистрация: 22.03.2013
Сообщений: 224
15.07.2013, 20:25 12
Цитата Сообщение от vahe Посмотреть сообщение
a kak kontaktirovac s pragramu?

Добавлено через 7 минут
a kak kontaktirovac s pragramu?

Добавлено через 53 секунды
a kak kontaktirovac s pragramu?
вижу алгоритм уже заработал
0
nxtech
77 / 59 / 9
Регистрация: 26.06.2013
Сообщений: 198
16.07.2013, 09:53 13
Что значит контактировать с программой?

Добавлено через 56 секунд
Можно просто скопировать класс KeeLog в файл keelog.cs и использовать его ваших программах. Но это лишь пример.

Добавлено через 24 секунды
Скорее всего потребуется дописать пару (а может несколько пар) методов шифрования/расшифрования массивов.

Добавлено через 2 минуты
Например, с учетом перегрузок SerialPort.Write:
C#
1
2
3
4
public static char[] Encrypt(char[] data, ulong key);
public static char[] Decrypt(char[] data, ulong key);
public static byte[] Encrypt(byte[] data, ulong key);
public static byte[] Decrypt(byte[] data, ulong key);
Добавлено через 2 минуты
При этом нужно учитывать, что данные шифруются/расшифровываются блоками по 32 бита. Следовательно, размер массива для шифрования должен быть кратным 4 байтам (возможно, дополняться "левыми" данными) . Соответственно, потребуется хранить информацию о размере исходного (нешифрованного массива). Этот размер можно хранить в начале или в конце шифрованного массива, что потребует увеличения шифрованного размера еще на 4 байта.
0
16.07.2013, 09:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2013, 09:53

Перевести код из C++ на C#
Всем привет. Дан код на C++, нужно преобразовать в C#. Буду благодарен! ...

Перевести код из С++ в С#
Сам код #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;windows.h&gt;...

Перевести код из C++ в C#
Переведите пожалуста в C# // __________________ Деление больших чисел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru