http://qs321.pair.com?node_id=783328
 Category: Cryptography Author/Contact Info Oromis92 Description: bah... something stupid, just for exercise. ```#!/usr/bin/perl -w @A = ( '/', '\$', '[', ']', '{', '~', ')', '@', '#', '_', ',', ';', '.' +, ':' ); @B = ( '+', '-', '%', '?', '}', '<', '>', '(', '!' ); @C = ( 0 .. 9, "A" .. "Z", "a" .. "z", '"', '\'', '&', '|', '*', '^', +'=' ); print "> "; \$text = <>; chomp \$text; @text = map( ord ^ 42, split //, \$text ); for \$i ( 0 .. \$#text ) { \$text[\$i] = 0 . sprintf( '%b', \$text[\$i] ) while length \$text[\$i] +< 8; @bits = split //, \$text[\$i] ; for \$j ( 0 .. \$#bits ) { \$bits[\$j] =~ s/1/x/; \$bits[\$j] =~ s/0/1/; \$bits[\$j] =~ s/x/0/; } @bits = split //, ( \$bits[4] . \$bits[5] . \$bits[6] . \$bits[7] . \$b +its[0] . \$bits[1] . \$bits[2] . \$bits[3] ); for \$j ( 0 .. \$#bits ) { \$output .= \$A[ int( rand(@A) ) ] if \$bits[\$j] eq "0"; \$output .= \$B[ int( rand(@B) ) ] if \$bits[\$j] eq "1"; \$output .= \$C[ int( rand(@C) ) ] if int( rand(100) ) < 42; } } print "\n\$output\n"; ```
Replies are listed 'Best First'.
Re: An Useless Cipher
by jwkrahn (Monsignor) on Jul 27, 2009 at 10:11 UTC
```    for \$j ( 0 .. \$#bits ) {
\$bits[\$j] =~ s/1/x/;
\$bits[\$j] =~ s/0/1/;
\$bits[\$j] =~ s/x/0/;
}
```    tr/01/10/ for @bits;