The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Как в /bin/sh красиво отксорить строку ключом? , !*! DeadLoco, 25-Июн-11, 23:02  [смотреть все]
В циклах - понятно, но не нравится. Нутром чую, что должно быть элегантное решение, но найти не могу.

  • Как в /bin/sh красиво отксорить строку ключом? , !*! dogonthesun, 08:36 , 26-Июн-11 (1)
    > В циклах - понятно, но не нравится. Нутром чую, что должно быть
    > элегантное решение, но найти не могу.

    приведите пример исходных строк, ключа и вывода.

  • Как в /bin/sh красиво отксорить строку ключом? , !*! Aquarius, 11:46 , 26-Июн-11 (2)
    > В циклах - понятно, но не нравится. Нутром чую, что должно быть
    > элегантное решение, но найти не могу.

    /bin/sh /bin/sh'у рознь

  • Как в /bin/sh красиво отксорить строку ключом? , !*! pavlinux, 16:29 , 27-Июн-11 (3)
    >  Нутром чую, что должно быть элегантное решение, но найти не могу.

    И не найдёшь.

    • Как в /bin/sh красиво отксорить строку ключом? , !*! DeadLoco, 16:33 , 27-Июн-11 (4)
      >>  Нутром чую, что должно быть элегантное решение, но найти не могу.
      > И не найдёшь.

      Обоснуй.

      • Как в /bin/sh красиво отксорить строку ключом? , !*! pavlinux, 16:36 , 27-Июн-11 (5)
        >>>  Нутром чую, что должно быть элегантное решение, но найти не могу.
        >> И не найдёшь.
        > Обоснуй.

        XOR это побитовая операция над целыми или битовая над логическим операндами.
        Поэтому "WORLD" ^ "KEY" - звучит глупо, хотя бы из-за того что не совпадает размер строк.

        • Как в /bin/sh красиво отксорить строку ключом? , !*! DeadLoco, 16:38 , 27-Июн-11 (6)
          > XOR это побитовая операция над целыми или битовая над логическим операндами.
          > Поэтому "WORLD" ^ "KEY" - звучит глупо, хотя бы из-за того что
          > не совпадает размер строк.

          ОМГ.

          • Как в /bin/sh красиво отксорить строку ключом? , !*! pavlinux, 16:41 , 27-Июн-11 (7)
            >> XOR это побитовая операция над целыми или битовая над логическим операндами.
            >> Поэтому "WORLD" ^ "KEY" - звучит глупо, хотя бы из-за того что
            >> не совпадает размер строк.
            > ОМГ.

            Ну тогда поясняй на языке мат. логики задачу "красиво отксорить строку ключом"


            • Как в /bin/sh красиво отксорить строку ключом? , !*! DeadLoco, 17:14 , 27-Июн-11 (8)
              > Ну тогда поясняй на языке мат. логики задачу "красиво отксорить строку ключом"

              Гугль на тему "XOR-криптование" выдает массу полезной инфы. Если гуглить лень, то вкратце идея следующая: строка сообщения "HELLO WORLD" побайтно ксорится с циклическим повторением ключа "KEYKEYKEYKE". Повторный ксор по ключу восстанавливает исходное сообщение. Для коротких сообщений и длинных ключей - наиболее надежный и эффективный метод симметричного шифрования. Но нам же это знать совершенно ни к чему, верно?


              • Как в /bin/sh красиво отксорить строку ключом? , !*! pavlinux, 17:36 , 27-Июн-11 (9)
                > строка сообщения "HELLO WORLD" побайтно ксорится

                А можно еще и так


                for i in "HELLO WORLD"  
                  do
                     i = i XOR "K";
                     i = i XOR "E";
                     i = i XOR "Y";
                done

                или так, со сдвигом.

                for i in "HELLO WORLD"  
                  do
                     i = i XOR "K";
                     i = i XOR "E";
                     i = i XOR "Y";
                     i++;
                     i = i XOR "E";
                     i = i XOR "Y";
                     i = i XOR "K";
                     i++;
                     i = i XOR "Y";
                     i = i XOR "E";
                     i = i XOR "K";
                done

                :)

                > с циклическим повторением ключа

                Точно! Осталось придумать ацикличный, потоковый XOR :)


              • Как в /bin/sh красиво отксорить строку ключом? , !*! pavlinux, 18:03 , 27-Июн-11 (10)
                >> Ну тогда поясняй на языке мат. логики задачу "красиво отксорить строку ключом"
                > Гугль на тему "XOR-криптование" выдает массу полезной инфы. Если гуглить лень, то
                > вкратце идея следующая: строка сообщения "HELLO WORLD" побайтно ксорится с циклическим
                > повторением ключа "KEYKEYKEYKE". Повторный ксор по ключу восстанавливает исходное сообщение.

                1. Тебе нужно расширить длину ключа до длины "HELLO WORLD"

                без цикла делается это SIZEOF("HELLO WORLD") / SIZEOF("KEY");  получим 4
                перед тем как начать потоковый XOR придется объединить все "KEY" 4 раза,
                иначе без цикла не получиться. Для объединения нужон аналог strcat()


                #include <string.h>

                char *strcat(char *s, char *append)
                {
                    char *save = s;

                    for (; *s; ++s);
                       while ((*s++ = *append++) != 0);

                  return(save);
                }


                Облом, опят цикл.


              • Как в /bin/sh красиво отксорить строку ключом? , !*! Aquarius, 22:20 , 27-Июн-11 (11)
                >> Ну тогда поясняй на языке мат. логики задачу "красиво отксорить строку ключом"
                > Гугль на тему "XOR-криптование" выдает массу полезной инфы. Если гуглить лень, то
                > вкратце идея следующая: строка сообщения "HELLO WORLD" побайтно ксорится с циклическим
                > повторением ключа "KEYKEYKEYKE". Повторный ксор по ключу восстанавливает исходное сообщение.
                > Для коротких сообщений и длинных ключей - наиболее надежный и эффективный
                > метод симметричного шифрования. Но нам же это знать совершенно ни к
                > чему, верно?

                ни к чему, верно
                только это твоя проблема, как задавшего вопрос, сделать так, чтобы вопрос был не только вполне понятен, но и, по возможности, не допускал неоднозначной трактовки

                • Как в /bin/sh красиво отксорить строку ключом? , !*! DeadLoco, 23:06 , 27-Июн-11 (12)
                  > только это твоя проблема, как задавшего вопрос, сделать так, чтобы вопрос был
                  > не только вполне понятен, но и, по возможности, не допускал неоднозначной
                  > трактовки

                  "Отксорить строку ключом" - совершенно однозначная постановка вопроса, вполне понятная тем, кто в теме.

                  Экскюзе се муа, не в моих силах сделать все понятным каждому. Я бы этого очень хотел, это значительно упростило бы жизнь, но увы.

                  • Как в /bin/sh красиво отксорить строку ключом? , !*! pavlinux, 01:39 , 28-Июн-11 (13)
                    > "Отксорить строку ключом" - совершенно однозначная постановка вопроса, вполне понятная
                    > тем, кто в теме.

                    Постановка однозначная, решений может быть дофига, но без цикла никак.

                    • Как в /bin/sh красиво отксорить строку ключом? , !*! DeadLoco, 02:00 , 28-Июн-11 (14)
                      > Постановка однозначная, решений может быть дофига, но без цикла никак.

                      Жаль, строковых функций приличных нет. Щас еще сед/авк колупаю.

                      • Как в /bin/sh красиво отксорить строку ключом? , !*! Aquarius, 03:53 , 28-Июн-11 (15)
                        >> Постановка однозначная, решений может быть дофига, но без цикла никак.
                        > Жаль, строковых функций приличных нет. Щас еще сед/авк колупаю.

                        и все-таки, интересно было бы знать, о какой системе идет речь
                        я предполагаю, что о FreeBSD, раз нет рассуждений о несоизмеримости возможностей bash и dash
                        не пойму только, почему для всех участников дискуссии это очевидно, а для меня нет

                        • Как в /bin/sh красиво отксорить строку ключом? , !*! pavlinux, 04:20 , 28-Июн-11 (16)
                          > не пойму только, почему для всех участников дискуссии это очевидно, а для
                          > меня нет

                          Врубай метод исключений.  

                          1. XOR операция битовая.
                          2. Строка это не элементарный тип.
                          3. Строка это массив байт.
                          4. Две строки - два массива.
                          5. XOR на двумя строками сводиться к XOR над элементами из этих массивов.
                          6. Единственно, них...я не сказано про порядок выборки операндов для XOR.
                          7. Автор хочет, не применяя циклов, сделать XOR меж двумя строками, по описанным выше правилам.    
                          8. Область определения, видимо утилиты UNIX или shell.

                          :)


                        • Как в /bin/sh красиво отксорить строку ключом? , !*! Aquarius, 09:57 , 28-Июн-11 (17)
                          >[оверквотинг удален]
                          > 2. Строка это не элементарный тип.
                          > 3. Строка это массив байт.
                          > 4. Две строки - два массива.
                          > 5. XOR на двумя строками сводиться к XOR над элементами из этих
                          > массивов.
                          > 6. Единственно, них...я не сказано про порядок выборки операндов для XOR.
                          > 7. Автор хочет, не применяя циклов, сделать XOR меж двумя строками, по
                          > описанным выше правилам.
                          > 8. Область определения, видимо утилиты UNIX или shell.
                          > :)

                          из всего этого списка я говорил только про 8
                          а теперь моя очередь :)
                          1. /bin/sh, в общем случае, не может быть абстрактым
                          2. например, в GNU/Linux раньше это (почти всегда) был bash
                          3. теперь это (еще только будет) (во многих случаях) еще и dash
                          4. во FreeBSD, NetBSD (и, видимо, OpenBSD) это ash
                          5. оно все, конечно же, должно соответствовать POSIX, и, вроде как, так оно и есть (а вот теперь я понял)

                        • Как в /bin/sh красиво отксорить строку ключом? , !*! DeadLoco, 12:34 , 28-Июн-11 (18)
                          > не пойму только, почему для всех участников дискуссии это очевидно, а для меня нет

                          Потому что /bin/sh, на самом деле - весьма конкретная сущность, а не абстрактный пойнт, на который что хочу, то и линкую. Да, будучи надмножествами sh, разные *ash могут заменять классический sh Борна, но посиксовым стандартом является, все-таки, именно sh, и именно sh в наибольшей степени обеспечивает межплатформенную и версионную совместимость. При всей убогости его средств.

                        • Как в /bin/sh красиво отксорить строку ключом? , !*! Aquarius, 13:47 , 28-Июн-11 (19)
                          >> не пойму только, почему для всех участников дискуссии это очевидно, а для меня нет
                          > Потому что /bin/sh, на самом деле - весьма конкретная сущность, а не
                          > абстрактный пойнт, на который что хочу, то и линкую. Да, будучи
                          > надмножествами sh, разные *ash могут заменять классический sh Борна, но посиксовым
                          > стандартом является, все-таки, именно sh, и именно sh в наибольшей степени
                          > обеспечивает межплатформенную и версионную совместимость. При всей убогости его средств.

                          да, спасибо!
                          я уже пришел к пониманию

                      • Как в /bin/sh красиво отксорить строку ключом? , !*! ACCA, 15:21 , 28-Июн-11 (20)
                        >> Постановка однозначная, решений может быть дофига, но без цикла никак.
                        > Жаль, строковых функций приличных нет. Щас еще сед/авк колупаю.

                        Чем тогда тот же gpg -c --passphrase 'KEY' неполноценен?




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру