Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Encrypt String Crypt::CBC

by gryphon (Abbot)
on Jan 23, 2013 at 17:25 UTC ( #1014966=note: print w/ replies, xml ) Need Help??

in reply to Encrypt String Crypt::CBC

Greetings docbrown25,

From what I can tell from my very limited playing with Crypt::CBC is that to do what you want, you'll need to generate an initialization vector per each encryption, then prepend that IV to the head of the blob before encoding. You'll have to reverse that process of course when decoding and decrypting.

Here's an example bit of code that randomly generates IVs, then uses these to encrypt/encode a URL. Then the decode/decrypt process pulls the IV off the head of the data.

#!/usr/bin/perl use strict; use warnings; use Crypt::CBC; use MIME::Base64::URLSafe qw( urlsafe_b64encode urlsafe_b64decode ); my $key = 'secret'; sub url_encode { my ( $string, $iv ) = @_; return urlsafe_b64encode( $iv . Crypt::CBC->new( '-key' => $key, '-header' => 'none', '-iv' => $iv, '-cypher' => 'Blowfish', )->encrypt($string) ); } sub url_decode { my $b64 = urlsafe_b64decode( $_[0] ); return Crypt::CBC->new( '-key' => $key, '-header' => 'none', '-iv' => substr( $b64, 0, 8 ), '-cypher' => 'Blowfish', )->decrypt( substr( $b64, 8 ) ); } foreach ( 1 .. 5 ) { my $iv = join( '', map { [ 'a' .. 'z' ]->[ rand(26) ] } ( 1 .. 8 ) + ); my $en_string = url_encode( '', $iv ); my $de_string = url_decode($en_string); print $iv, ' : ', $en_string, ' => ', $de_string, "\n"; }

Hope this helps.

Comment on Re: Encrypt String Crypt::CBC
Download Code
Replies are listed 'Best First'.
Re^2: Encrypt String Crypt::CBC
by docbrown25 (Initiate) on Jan 23, 2013 at 20:19 UTC
    this is great. exactly what I was looking for. thank you very much!

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2015-11-27 17:55 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (731 votes), past polls