Schrift
[thread]7263[/thread]

Problem mit Twofish



<< >> 10 Einträge, 1 Seite
root
 2005-09-08 23:26
#57772 #57772
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Hallo!

Ich möchte einen Text verschlüsseln und hinterher wieder entschlüseln, muss nicht doll sicher sein. Ich habe Twofish gewählt. Leider geht es nicht. 16 Bytes sind doch 16 Zeichen???

Hier die Beschreibung zum Modul:
http://www.mirrors.wiretapped.net/securit....twofish

Hier mein Code
Code: (dl )
1
2
3
4
5
6
7
    
use Crypt::Twofish;

my $key = 'oe' x 8;
print "'$key'<br>\n" if ($config{'umgebung'} == "test");
my $cipher = Crypt::Twofish->new($key);
my $crypt_passwd = $cipher->encrypt($eingang{'passwd'});


Hier leider der Fehler - kann ja nix arges sein:
input must be 16 bytes long at /usr/lib/perl5/site_perl/5.8.0/i586-linux-thread-multi/Crypt/Twofish.pm line 32.

Danke für schnelle Hilfe, muss morgen früh abgeben...

PS: Sorry für das Thema, da sollte noch Twofisch rein :-(
Edit Relais: no problem =)\n\n

<!--EDIT|Relais|1126209729-->
pKai
 2005-09-09 00:45
#57773 #57773
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Nicht der key muss 16 Bytes haben, sondern der zu cryptende Text:
Quote
encrypt($data)
Encrypts blocksize() bytes of $data and returns the
corresponding ciphertext.
Das ist bei diesen block ciphers immer so, daher muss man dann auch sowas wie Crypt::CBC benutzen um beliebig lange (vielfache von blocksize lange) Texte zu bearbeiten.
I sense a soul in search of answers.
root
 2005-09-09 00:48
#57774 #57774
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Das bedeutet für meinen Code? ich verstehe kein Wort!
Wie muss ich es umschreiben?

Danke für die Hilfe!
esskar
 2005-09-09 00:48
#57775 #57775
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
mach das nicht; benutz gleich
CPAN:crypt-cbc oder wenn du auf files arbeiten willst CPAN:PerlIO-via-CBC
J-jayz-Z
 2005-09-09 00:49
#57776 #57776
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Okay, wie es aussieht, muss das passwort 16bytes sein.
Ja, ein Buchstabe = 8 Bit und 8 Bit = ein Byte.
Hier meine versuche:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
use strict;
use warnings;

use Crypt::Twofish;

my $key = "oe" x 8;
my $cipher = Crypt::Twofish->new($key);
my $passwd = 'eins' x 4;

print "Passwort ist gültig\n" if($cipher->blocksize() == length($passwd));
print $cipher->encrypt($passwd). "\n";
\n\n

<!--EDIT|J-jayz-Z|1126212717-->
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
root
 2005-09-09 01:04
#57777 #57777
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Oha, auf einmal kommt leben in die Bude :-)

ich habe es jetzt mit blowfish gemacht. Da hatte ich noch ein altes Script, aus den Tagen an denen ich noch schlau war...

Danke für eure Mühe!!!
Crian
 2005-09-12 13:11
#57778 #57778
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
[quote=J-jayz-Z,08.09.2005, 22:49]Ja, ein Buchstabe = 8 Bit und 8 Bit = ein Byte.[/quote]
Soll ich was zu Bits, Bytes und Oktetts oder gar utf8 sagen? Nein? Na gut, ich hab nichts gesagt ;)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
J-jayz-Z
 2005-09-13 11:52
#57779 #57779
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Crian,12.09.2005, 11:11]Soll ich was zu Bits, Bytes und Oktetts oder gar utf8 sagen? Nein? Na gut, ich hab nichts gesagt ;)[/quote]
Ich würde es gerne hören :)
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
GwenDragon
 2005-09-13 13:20
#57780 #57780
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
[quote=J-jayz-Z,13.09.2005, 09:52][quote=Crian,12.09.2005, 11:11]Soll ich was zu Bits, Bytes und Oktetts oder gar utf8 sagen? Nein? Na gut, ich hab nichts gesagt ;)[/quote]
Ich würde es gerne hören  :)[/quote]
8 Bit = 1 Byte

7 Bit = 1 Char bei US-ASCII
8 bit = 1 Char bei ISO-8859-1
n * 8 Bit = 1 Char bei UTF-8, UTF-16

;)
Crian
 2005-09-13 14:32
#57781 #57781
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Naja, es gibt (oder gab) auch Systeme, auf denen galt ein Byte = 6 Bit bzw. ein Byte = 9 Bit.

Deshalb hat man den Begriff "Oktett" eingeführt. Man könnte sagen, ein Oktett ist aus 8 Bits bestehendes Byte.

Das war immer mal wieder ein großes Thema im usenet in C Foren, denn in C ist (oder war) sizeof char stets 1 (per Definition), man kann sich aber nicht darauf verlassen, dass da genau 8 Bits drin sind.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 10 Einträge, 1 Seite



View all threads created 2005-09-08 23:26.