Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: File::Slurp and encryption

by ikegami (Patriarch)
on Sep 21, 2005 at 20:53 UTC ( #493964=note: print w/replies, xml ) Need Help??

in reply to File::Slurp and encryption

Try using the binmode => ':raw' option for read_file (if it's not text) and write_file (if crypt can return any byte).

Any benefit from slurping should be minimal (and null when using Big-Oh notation). You'll get real time savings by switching from the Perl version of the cypher to a C version.

Replies are listed 'Best First'.
Re^2: File::Slurp and encryption
by Solostian (Beadle) on Sep 21, 2005 at 21:01 UTC
    The encrypted file is an ASCII text originally. But an encrypted file can be handled in binary mode. I'll give it a try

    As for the Pure Perl cipher, I'm still hesitating. I know the biggest benefit would come from there but I still do not know the deployment server's OS... Any suggestion?

      You could try to use the C cypher and fall back on the Perl one. Something like
      my $cypher; if (eval { require Crypt::Twofish }) { $cypher = 'Crypt::Twofish'; } elsif (eval { require Crypt::Twofish_PP }) { warn("Crypt::Twofish not found. Falling back to slower Crypt::Twofi +sh_PP\n") if $DEBUG; $cypher = 'Crypt::Twofish_PP'; } else { die("Neither Crypt::Twofish nor Crypt::Twofish_PP was found. Aborti +ng"); }
      my $cypher; foreach (qw( Crypt::Twofish Crypt::Twofish_PP )) { my $mod = $_; my $file = $_; $file =~ s{::}{/}g; $file .= '.pm'; if (eval { require $file }) { $cypher = $mod; last; } } die("No acceptable encryption algorithm found. Aborting") if not defined $cypher;

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://493964]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2023-02-07 02:50 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (38 votes). Check out past polls.