ROT13



  • Registrierter Troll schrieb:

    cat dict.lst | wc -l
    

    :p

    wc -l dict.lst
    


  • phlox81 schrieb:

    Könnte man doch ganz einfach mit einem Wörterbuch herausfinden

    Hab ich mir auch gedacht, nur hab ich irgendwie keines gefunden. Jetzt hab ich mir selbst eines gemacht (und es wächst und wächst).

    Tamron schrieb:

    Viel besser sind doch Programme die rot13 immer noch funktionieren (angeblich).

    Schade, scheinbar antwortet der IOCCC-Server gerade nicht. Muss ich mir später unbedingt ansehen.

    Registrierter Troll schrieb:

    ertrag <-> regent

    Ist die schönste (weil längste) Lösung.
    Wir stehen bei 6 Zeichen, bietet jemand 7? 🙂



  • Falls jemand von euch Interesse hat - ich hab vor Kurzem einen Rot* En/Decoder gebastelt.

    Exe gibt's nach pm.



  • Falls jemand von euch Interesse hat - ich hab vor Kurzem einen Rot* En/Decoder gebastelt.

    Das ist nett, danke, aber das schaff ich gerade noch alleine. 😉

    Einen hab ich noch, wenn man freire als Kurzform von freiere (Komparativ pluralis von frei) gelten lässt. Kommt immerhin bei Schiller vor. Sind aber auch nur 6 Zeichen.

    Bietet niemand 7?
    Gebe im Vorraus zu, dass das eine tolle Leistung ist...



  • Ist zwar geschummelt, aber wenn die Wörter nicht deutsch oder in der selben Sprache sein müssen:

    creeren (Niederländisch) / perrera (Spanisch)
    freiner (Französisch) / servare (Italienisch)
    abjurer (Englisch) / nowhere (Englisch)



  • bgdnoy schrieb:

    Falls jemand von euch Interesse hat - ich hab vor Kurzem einen Rot* En/Decoder gebastelt.

    Das ist nett, danke, aber das schaff ich gerade noch alleine. 😉

    Auch mit 36 Zeilen (großzügig formatiertem) code sowohl für en- als auch decrypt von 0-26?



  • EOP schrieb:

    Auch mit 36 Zeilen (großzügig formatiertem) code

    Davon hat man ja nicht viel, wenn man dein Programm nur fertig kompiliert bekommt.

    sowohl für en- als auch decrypt von 0-26?

    Dein Programm kann also wirklich beides? Und was meinst du mit "von 0-26"?

    Mein Versuch:

    import sys
    for line in sys.stdin.readlines(): print line.encode("rot13")
    

    2 Zeilen in Python. Ziemlich gut, was? 🙂



  • Registrierter Troll schrieb:

    Mein Versuch:

    import sys
    for line in sys.stdin.readlines(): print line.encode("rot13")
    

    2 Zeilen in Python. Ziemlich gut, was? 🙂

    Pfft. EINE Zeile in Brainfuck.

    +[,+[-[>+>+<<-]>[<+>-]+>>++++++++[<-------->-]<-[<[-]>>>+[<+<+>>-]<[>+<-]<[<++>>>+[<+<->>-]<[>+<-]]>[<]<]>>[-]<<<[[-]<[>>+>+<<<-]>>[<<+>>-]>>++++++++[<-------->-]<->>++++[<++++++++>-]<-<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<<<<+>>>>++++[<++++++++>-]>-]<<-<-]>[<<<<[-]>>>>[<<<<->>>>-]]<<++++[<<++++++++>>-]<<-[>>+>+<<<-]>>[<<+>>-]+>>+++++[<----->-]<-[<[-]>>>+[<+<->>-]<[>+<-]<[<++>>>+[<+<+>>-]<[>+<-]]>[<]<]>>[-]<<<[[-]<<[>>+>+<<<-]>>[<<+>>-]+>------------[<[-]>>>+[<+<->>-]<[>+<-]<[<++>>>+[<+<+>>-]<[>+<-]]>[<]<]>>[-]<<<<<------------->>[[-]+++++[<<+++++>>-]<<+>>]<[>++++[<<++++++++>>-]<-]>]<[-]++++++++[<++++++++>-]<+>]<.[-]+>>+<]>[[-]<]<]
    


  • Nanyuki schrieb:

    Ist zwar geschummelt, aber wenn die Wörter nicht deutsch oder in der selben Sprache sein müssen:

    creeren (Niederländisch) / perrera (Spanisch)
    freiner (Französisch) / servare (Italienisch)
    abjurer (Englisch) / nowhere (Englisch)

    Lasse ich gelten (falls es stimmt). Ruhm und Ehre an dich!
    Wer bietet 8?



  • bgdnoy schrieb:

    Nanyuki schrieb:

    Ist zwar geschummelt, aber wenn die Wörter nicht deutsch oder in der selben Sprache sein müssen:

    creeren (Niederländisch) / perrera (Spanisch)
    freiner (Französisch) / servare (Italienisch)
    abjurer (Englisch) / nowhere (Englisch)

    Lasse ich gelten (falls es stimmt). Ruhm und Ehre an dich!
    Wer bietet 8?

    das ist ja doof. da kannst du alles eingeben, und wenn das wort, das herauskommt, nicht in irgendner "normalen" sprache vorkommt, wird es zu 99% im walisischen vorhanden sein.



  • Registrierter Troll schrieb:

    EOP schrieb:

    Auch mit 36 Zeilen (großzügig formatiertem) code

    Davon hat man ja nicht viel, wenn man dein Programm nur fertig kompiliert bekommt.

    sowohl für en- als auch decrypt von 0-26?

    Dein Programm kann also wirklich beides? Und was meinst du mit "von 0-26"?

    0-26 = shift um 0 bis 26.

    m_diff ist der "shift".

    // A = 65, Z = 90, a = 97, z = 122
    unsigned char CSimpleCryptDlg::EncryptChar( int ch )
    {
    	int ret, diff;
    	if( ch >= 97 && ch <= 122 )
    	{
    		ret = ch + m_diff;
    		if( ret < 97 )
    		{
    			diff = 97 - ret;
    			ret = 123 - diff;
    		}
    		else if( ret > 122 )
    		{
    			diff = ret - 123;
    			ret = 97 + diff;
    		}
    		return( static_cast<unsigned char> (ret) );
    	}
    	else if( ch >= 65 && ch <= 90 )
    	{
    		ret = ch + m_diff;
    		if( ret < 65 )
    		{
    			diff = 65 - ret;
    			ret = 91 - diff;
    		}
    		else if( ret > 90 )
    		{
    			diff = ret - 91;
    			ret = 65 + diff;
    		}
    		return( static_cast<unsigned char> (ret) );
    	}
    	else
    		return( static_cast<unsigned char> (ch) );
    }
    


  • EOP schrieb:

    0-26 = shift um 0 bis 26.

    Ach so. Andere Offsets als 13 (und 0 und 26 :)) sind bloß ein bisschen unpraktisch, weil zwischen Ver- und Entschlüsselung unterschieden werden muss.

    Mein Versuch in C++:

    std::string rotn(std::string const& text, unsigned offset = 13)
    {
    	std::string r = text;
    	for(std::string::iterator i = r.begin(); i != r.end(); ++i)
    	{
    		if((*i >= 'a' && *i <= 'z'))
    			*i = 'a' + (*i - 'a' + offset) % 26;
    		else
    		if((*i >= 'A' && *i <= 'Z'))
    			*i = 'A' + (*i - 'A' + offset) % 26;
    	}
    	return r;
    }
    


  • Registrierter Troll schrieb:

    EOP schrieb:

    0-26 = shift um 0 bis 26.

    Ach so. Andere Offsets als 13 (und 0 und 26 :)) sind bloß ein bisschen unpraktisch, weil zwischen Ver- und Entschlüsselung unterschieden werden muss.

    ROT13 ist halt genau die Hälfte der 26 englischen ASCII Buchstaben.
    Deswegen is 2 mal encrypt = decrypt.

    Für alle Anderen gilt z.B.: Encrypt:ROT5 und Decrypt:ROT-5


Anmelden zum Antworten