A-ha!  I knew it was casting that was getting me.  On the way back from raw
to varchar2 the Oracle builtin will do NLS_LANG conversion.

THANKS, Jared!  Does this mean I need to buy two of your books now?  ;)

Rich Jesse                           System/Database Administrator
[EMAIL PROTECTED]              Quad/Tech International, Sussex, WI USA

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, August 20, 2002 12:14 PM
> To: [EMAIL PROTECTED]
> Cc: Jesse, Rich
> Subject: Re: Storing/retrieving DES3 data w/Perl
> 
> 
> Well, here's one way to do it.
> 
> This converts the data to hex before storing in Oracle.
> 
> Jared
> 
> #!/usr/bin/perl
> 
> use DBI qw(:sql_types);
> use Crypt::TripleDES;
> 
> my ($DBname, $Uname, $Pword ) = ('MYDB','MYUSER','MYPASS');
> my $DESpass = "abcdefgh";
> 
> $dbh = DBI->connect(
>         "dbi:Oracle:dv01","scott","tiger",
>         {
>                 RaiseError => 1,
>                 AutoCommit => 0
>         }
> );
> 
> my $DES3 = new Crypt::TripleDES;
> my $Cryptpass = $DES3->encrypt3 ( $Pword, $DESpass );
> my $hexPassword = unpack("H*",$Cryptpass);
> 
> print "Clear  : $Pword\n";
> print "Decrypt: ", $DES3->decrypt3($Cryptpass, $DESpass),"\n";
> print "Hex    : $hexPassword\n";
> 
> $dbh->do('truncate table valid_connection');
> 
> $sth = $dbh->prepare(qq(
>                 INSERT INTO valid_connection(
>                         db_alias, db_username, db_password, 
> clear_password
>                 )
>                 VALUES(?,?,?,?)
>         )
> );
> 
> $sth->execute($DBname, $Uname, $hexPassword, $Pword);
> 
> $sth = $dbh->prepare(qq
>         {
>                 SELECT
>                         db_alias, db_username, db_password, 
> clear_password
>                 FROM valid_connection
>         }
> );
> 
> $sth->execute;
> 
> while ( my $hr = $sth->fetchrow_hashref)
> {
>                  my $clearPassword = $DES3->decrypt3(pack("H*", 
> $hr->{DB_PASSWORD}), $DESpass);
>                  print "$hr->{DB_ALIAS} $hr->{DB_USERNAME} 
> $clearPassword\n";
> }
> 
> $dbh->disconnect;
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jesse, Rich
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to