Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

XOR en shell

30 réponses
Avatar
octane
Bonjour,

je cherche a xor des chaines de caracteres.
Existe t'il un bout de script shell qui realise ce genre de chose, ou
il faut obligatoirement passer par un langage de programmation?

Merci

10 réponses

1 2 3
Avatar
Stephane Chazelas
2006-06-9, 08:40(-07), :
Bonjour,

je cherche a xor des chaines de caracteres.
Existe t'il un bout de script shell qui realise ce genre de chose, ou
il faut obligatoirement passer par un langage de programmation?
[...]


Qu'est-ce que tu entends par xor des chaines de caracteres ?

Les shells POSIX on un operateur arithmetique XOR, mais je ne
sais pas ce que ca veut dire pour des chaines de caracteres.

$ echo "$((1 ^ 2))"
3

A la limite, tu peux faire des xors de caracteres en tant
nombres par:

chaine1«c
chaine23
eval "echo "$(
printf %s "$chaine1$chaine2" |
od -vAn -tu1 |
tr -s '11 ' '1212' |
awk -v n="${#chaine1}" '
!/./{next}
++i <= n {a[i+n]=$1; next}
{print "$((" a[i] "^" $1 "))"}
'
)"" | awk '{printf "%c", $1}END{print ""}'

Qui renvoie "PPP", parce que "a" == 97, "1" == 48 et
97 XOR 49 == 80 (qui est P)

--
Stéphane

Avatar
Vincent Lefevre
Dans l'article ,
Stephane Chazelas écrit:

A la limite, tu peux faire des xors de caracteres en tant
nombres par:

chaine1«c
chaine23
eval "echo "$(
printf %s "$chaine1$chaine2" |
od -vAn -tu1 |
tr -s '11 ' '1212' |
awk -v n="${#chaine1}" '
!/./{next}
++i <= n {a[i+n]=$1; next}
{print "$((" a[i] "^" $1 "))"}
'
)"" | awk '{printf "%c", $1}END{print ""}'


Autant faire un script en Perl.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA

Avatar
Stéphane Zuckerman
On Fri, 9 Jun 2006, Vincent Lefevre wrote:

Dans l'article ,
Stephane Chazelas écrit:

A la limite, tu peux faire des xors de caracteres en tant
nombres par:

chaine1«c
chaine23
eval "echo "$(
printf %s "$chaine1$chaine2" |
od -vAn -tu1 |
tr -s '11 ' '1212' |
awk -v n="${#chaine1}" '
!/./{next}
++i <= n {a[i+n]=$1; next}
{print "$((" a[i] "^" $1 "))"}
'
)"" | awk '{printf "%c", $1}END{print ""}'


Autant faire un script en Perl.


Sauf que Perl n'est pas forcément disponible (s'il l'est, je suis
d'accord).
--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)


Avatar
Vincent Lefevre
Dans l'article ,
Stéphane Zuckerman écrit:

On Fri, 9 Jun 2006, Vincent Lefevre wrote:

Dans l'article ,
Stephane Chazelas écrit:

A la limite, tu peux faire des xors de caracteres en tant
nombres par:

chaine1«c
chaine23
eval "echo "$(
printf %s "$chaine1$chaine2" |
od -vAn -tu1 |
tr -s '11 ' '1212' |
awk -v n="${#chaine1}" '
!/./{next}
++i <= n {a[i+n]=$1; next}
{print "$((" a[i] "^" $1 "))"}
'
)"" | awk '{printf "%c", $1}END{print ""}'


Autant faire un script en Perl.


Sauf que Perl n'est pas forcément disponible (s'il l'est, je suis
d'accord).


od n'est pas forcément disponible non plus.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA



Avatar
Loïc Restoux
Le 09 jun, à 23:51, Stéphane Zuckerman papotait :
Autant faire un script en Perl.


Sauf que Perl n'est pas forcément disponible (s'il l'est, je suis
d'accord).


J'ai découvert avec joie que Perl était disponibles sur les SCO
OpenServer 5 qui traînent encore au taff. Je pense qu'il y a peu de
risques de trouver un Unice qui n'embarque pas Perl, même en
installation de base.


--
No fortunes found


Avatar
Stephane Chazelas
2006-06-10, 01:37(+00), Vincent Lefevre:
[...]
Sauf que Perl n'est pas forcément disponible (s'il l'est, je suis
d'accord).


od n'est pas forcément disponible non plus.


od fait partie de l'Unix toolset standard, au meme titre que sh
et sed. Il est disponible sur les systemes POSIX et donc sur les
systemes Unix.

--
Stéphane


Avatar
moi
Loïc Restoux wrote:
Le 09 jun, à 23:51, Stéphane Zuckerman papotait :

Autant faire un script en Perl.


Sauf que Perl n'est pas forcément disponible (s'il l'est, je suis
d'accord).



J'ai découvert avec joie que Perl était disponibles sur les SCO
OpenServer 5 qui traînent encore au taff. Je pense qu'il y a peu de
risques de trouver un Unice qui n'embarque pas Perl, même en
installation de base.


... sauf que dans certaines (grosses) boites, y en a qui sont assez

tordus (pour ne pas employer un autre mot) pour en interdire son
utilisation, même s'il est installé de base ....
$



Avatar
Vincent Lefevre
Dans l'article ,
Stephane Chazelas écrit:

od fait partie de l'Unix toolset standard, au meme titre que sh
et sed. Il est disponible sur les systemes POSIX et donc sur les
systemes Unix.


C'est la théorie, mais dans la pratique...

zaurus:~> od
zsh: correct 'od' to 'do' [nyae]? n
zsh: command not found: od
zsh: exit 127 od

Note: c'est un Linux.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA

Avatar
Stephane Chazelas
2006-06-11, 15:41(+00), Vincent Lefevre:
Dans l'article ,
Stephane Chazelas écrit:

od fait partie de l'Unix toolset standard, au meme titre que sh
et sed. Il est disponible sur les systemes POSIX et donc sur les
systemes Unix.


C'est la théorie, mais dans la pratique...

zaurus:~> od
zsh: correct 'od' to 'do' [nyae]? n
zsh: command not found: od
zsh: exit 127 od

Note: c'est un Linux.
[...]


Alors ce systeme n'est pas Unix compliant. C'est de l'embbeded?
(ce qui serait surprenant vu qu'il y a un zsh).

od sera present sur les systemes Unix.

--
Stéphane


Avatar
Harpo
Stephane Chazelas wrote:


zaurus:~> od
zsh: correct 'od' to 'do' [nyae]? n
zsh: command not found: od
zsh: exit 127 od

Note: c'est un Linux.
[...]


Alors ce systeme n'est pas Unix compliant. C'est de l'embbeded?
(ce qui serait surprenant vu qu'il y a un zsh).


Je suis étonné qu'il n'ait pas 'od', sur Debian c'est dans le
package 'coreutils' qui contient cat ... dd ... mv ... rm ... et toutes
les commandes de base sans lesquelles la survie est impossible.

Peut-être son système est cassé ?

--
http://patrick.davalan.free.fr/


1 2 3