SET @@session.block_encryption_mode = 'aes-128-cbc';
SELECT ID, HEX(AES_ENCRYPT(Password,'$key',RANDOM_BYTES(16))) FROM User WHERE 1;
## OR
SET SESSION block_encryption_mode = 'aes-128-cbc';
SELECT ID, HEX(AES_ENCRYPT(Password,'$key',RANDOM_BYTES(16))) FROM User WHERE 1;
####
use strict; use CGI ':standard';
use DBI; use DBD::mysql;
our ($sth,$dbh,%Set,@Out);
&DBCredentials; # assigns %Set;
print header,start_html('test');
DBRun("SET SESSION block_encryption_mode='aes-128-cbc';
SELECT ID, HEX(AES_ENCRYPT(Password,'$Set{AESKey}',RANDOM_BYTES(16)))
FROM User WHERE 1");
while (my @ar=$sth->fetchrow_array){
my $len=length($ar[1]); push @Out,"$ar[0]: L=$len -- $ar[1]
\n";
} &DBEnd;
print shift(@Out)."\n" while @Out;
sub DBConnect { my $er;
my $dsn='DBI:mysql:database='.$Set{DBName};
$dbh=DBI->connect($dsn, $Set{DBUser}, $Set{DBPass}) || ($er=1);
if ($er){ myErr('DB Start Error'); }
} ##DBConnect##
sub DBRun { my $er; &DBConnect;
$sth=$dbh->prepare($_[0]) || ($er=1);
$sth->execute || ($er=1) if !$er;
if ($er){ myErr('DB Execute Error', $_[0]); }
} ##DBRun##
sub DBDo { my $er; &DBConnect; $dbh->do($_[0]) || ($er=1);
if ($DBI::err || $er){ myErr('DB Do Error', $_[0], $DBI::errstr);
} $dbh->disconnect();
} ##DBDo##
sub DBEnd {$sth->finish; $dbh->disconnect;
} ##DBEnd#
####
sub DBConnect { my $er;
my $DBCall={
'connect_cached.connected' => sub {
shift->do("SET SESSION block_encryption_mode='aes-128-cbc'");
}
};
my $dsn='DBI:mysql:database='.$Set{DBName};
$dbh=DBI->connect($dsn, $Set{DBUser}, $Set{DBPass}, { Callbacks => $DBCall }) || ($er=1);
if ($er){ myErr('DB Start Error'); }
} ##DBConnect##