Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Simple Crypt::CBC Sample?

by boat73 (Scribe)
on Feb 14, 2013 at 19:54 UTC ( [id://1018776]=perlquestion: print w/replies, xml ) Need Help??

boat73 has asked for the wisdom of the Perl Monks concerning the following question:

I have read docs and must be having a bad day. I have done some PGP encryption so maybe my understanding of the keys is mixing me up. I am just trying to get a snippet working using Crypt::CBC. What am I doing wroong, I am getting the error below. Any help is appreciated! Couldn't load Crypt::2238215281: Can't locate Crypt/2238215281.pm
use Crypt::CBC; use Crypt::Random qw( makerandom ); $key = makerandom( Size => 32, Strength => 1); my $cipher = Crypt::CBC->new( -key => $key ); my $ciphertext = $cipher->encrypt_hex('test');

Replies are listed 'Best First'.
Re: Simple Crypt::CBC Sample?
by toolic (Bishop) on Feb 14, 2013 at 20:14 UTC
    I was unable to install Crypt::Random, so I can't even attempt to replicate your error.

    However, if I run a modified version of your code with only Crypt::CBC, it runs for me without errors:

    use warnings; use strict; use Crypt::CBC; my $key = 1; my $cipher = Crypt::CBC->new( -key => $key ); my $ciphertext = $cipher->encrypt_hex('test'); print "$ciphertext \n"; __END__ 53616c7465645f5f5847db7edbe4cfb66a7ce84481016e42

    Perhaps there is a strange interaction between the 2 modules. Can you use something else to generate the key?

      Interesting, your code generates the error as well. At least I know I am not crazy, just need to figure out where the error is coming from. I am running perl 5.14.2.1402 on Windowz, are you running on Unix? Couldn't load Crypt::1: Can't locate Crypt/1.pm in @INC
        A look at the source code shows it may be doing a require:
        unless (ref $cipher) { # munge the class name if no object passed $cipher = $cipher=~/^Crypt::/ ? $cipher : "Crypt::$cipher"; $cipher->can('encrypt') or eval "require $cipher; 1" or croak "C +ouldn't load $cipher: $@"; # some crypt modules use the class Crypt::, and others don't $cipher =~ s/^Crypt::// unless $cipher->can('keysize'); }
        Yes, I'm on Unix, 2 variants:
        This is perl 5, version 12, subversion 2 (v5.12.2) built for x86_64-li +nux This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-li +nux-thread-multi
Re: Simple Crypt::CBC Sample?
by naChoZ (Curate) on Feb 14, 2013 at 22:24 UTC

    Instead of letting Crypt::CBC try and figure out a cipher on its own (where it's clearly picking 'Random' as the cipher you want to use in this case), you can specify one yourself...

    my $cipher = Crypt::CBC->new( -key => $key, cipher => 'Rijndael' );

    That will cause it to use Crypt::Rijndael for the cipher.

    --
    Andy

Re: Simple Crypt::CBC Sample?
by Anonymous Monk on Feb 15, 2013 at 17:12 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1018776]
Approved by toolic
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2024-03-28 19:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found