mGWcw1XJV3ooXbGvzBuShOA2gwcUnW11NZnHm1Nm
8JQktRSoaAKl369jL8ZLnJNF71I5ctZq8wGGtfov
iLj6PoXZWlzcasgBBUMefjGa0h+L53/VODmqCDaL
6jnZycB5VTngY5gt/9VpYxVW0KB5yR0TJrhHQa02
Vgn1I9ePtmbJfOkALXZPwY0H8MDULkzIYX409iSm
6zgu76UvW81qpJiakFDi9jmIbL4NVWYRlVR1xLRC
HiM8X8q0yCT1ZQO9HJE8vHc/jKdEOi8QGNyAOtdd
ku7Ikg4Pzwpk7g+R/TOCx7Q8xDKbV93sFHu1s3co
pZrpCcNmd8Oy1CFazZ5FweWwsFqfgxMqopMrtaG6
Qc1J7cB3fYpI2RDN6xbAJ8HPZWGdOQsobopv+Czt
GFuzVaVfwz8YXrLEXlbRFfv8Cpt8Q320NAAhwjFj
eEUMyPCpzVZaBske4NDJ++7JomijlS8H8cHmmD6P
Hbopy41W8BF9tsV9nqXgYeiVna98MNTEkyToyP/Z
kBhGYJcutv3s9pG7SydwuKCxCd+Dugusnu8lM10/
5UmGJ7YTGFCJvtfpXR9XoMCQ++eT4/YN9kZlim+2
bkjh01xPnG9r7PChWAVxpUVjOisGlZKrPV6tQRPU
qwQ0die7XienUt5e+jACACGMqXWA4O8P5sg/iT3w
Z2+dDIQiUnxCIATKn74/B8V9PDdtHnr5XOP5KPKK
aYcz/gXt1Q6WkWawUIoLvCkobkm5o7MXeAiJCtet
emfA86bV
####
#!/usr/bin/perl -w
use strict;
use warnings;
use Crypt::CBC;
use Fcntl ':flock';
use MIME::Base64;
my $encodedFileName = "BFSTest_encoded.csv";
my $decodedFileName = "BFSTest_decoded.csv";
my $decryptedFileName = "BFSTest_decrypted.csv";
my $cCipher = "Blowfish";
my $cKey = q{Abcdefghijklmnopqrstuvwxyz1234567890};
my $cIV = "randomiv";
my $cObject = Crypt::CBC->new({ key => $cKey, cipher => $cCipher });
croak( "Invalid cipher type for encryption" ) unless $cObject;
sub read_bytes {
my ($fh, $to_read) = @_;
my $buf = '';
while ($to_read) {
my $bytes_read = read($fh, $buf, $to_read, length($buf));
die("$!\n") if !defined($bytes_read);
die("Unexpected end of file\n") if !$bytes_read;
$to_read -= $bytes_read;
}
return $buf;
}
sub decryptNETData {
my ( $length, $buffer );
print "Now DECRYPTING $decodedFileName for current client ... \n";
open( my $fhREADFROM, "<", $decodedFileName ) || die("Cannot open encrypted file $decodedFileName");
binmode $fhREADFROM;
flock $fhREADFROM, LOCK_SH;
open( finalFile, ">", $decryptedFileName ) || die("Cannot open file $decryptedFileName to write decrypted contents");
binmode finalFile;
flock finalFile, LOCK_EX;
# Tried to slurp, decrypt and decode here, but that did not work either.
my $decodedFile = do { local( $/ ) ; <$fhREADFROM> } ;
utf8::decode( my $str = $cObject->decrypt( $decodedFile ) );
print finalFile $str;
#while (!eof($fhREADFROM)) {
# $length = unpack('N', read_bytes($fhREADFROM, 4));
# $buffer = read_bytes($fhREADFROM, $length);
# print finalFile $cObject->decrypt( $buffer );
#}
close $fhREADFROM;
close finalFile;
print "Decrypted $decodedFileName to $decryptedFileName. \n";
}
sub decodeData {
open(my $fhENCODEDFILE, "<", $encodedFileName) || die("Cannot open file $encodedFileName");
binmode $fhENCODEDFILE;
flock $fhENCODEDFILE, LOCK_EX;
open(my $fhDECODEDFILE, ">", $decodedFileName) || die("Cannot open file $decodedFileName");
binmode $fhDECODEDFILE;
flock $fhDECODEDFILE, LOCK_EX;
my $utf8base64EncodedFile = do { local( $/ ) ; <$fhENCODEDFILE> } ;
#utf8::decode( my $str = decode_base64($utf8base64EncodedFile) );
print $fhDECODEDFILE decode_base64($utf8base64EncodedFile);
close $fhENCODEDFILE;
close $fhDECODEDFILE;
print "Decoded $encodedFileName to $decodedFileName. \n";
}
decodeData();
decryptNETData();
####
public String Encrypt(String plainText)
{
int i, origLen, len, mod;
byte[] ueData, inBuf, outBuf, iv;
ueData = Encoding.UTF8.GetBytes(plainText);
origLen = ueData.Length;
len = origLen;
mod = len % BlowfishCBC.BLOCK_SIZE;
len = (len - mod) + BlowfishCBC.BLOCK_SIZE;
inBuf = new byte[len];
Array.Copy(ueData, 0, inBuf, 0, origLen);
i = len - (BlowfishCBC.BLOCK_SIZE - mod);
while (i < len)
{
inBuf[i++] = (byte)mod;
}
outBuf = new byte[inBuf.Length + BlowfishCBC.BLOCK_SIZE];
iv = new byte[BlowfishCBC.BLOCK_SIZE];
this.rng.GetBytes(iv);
this.bfc.IV = iv;
this.bfc.Encrypt(
inBuf,
0,
outBuf,
BlowfishCBC.BLOCK_SIZE,
inBuf.Length);
Array.Copy(iv, 0, outBuf, 0, BlowfishCBC.BLOCK_SIZE);
String sResult = Convert.ToBase64String(outBuf);
Array.Clear(inBuf, 0, inBuf.Length);
return sResult;
}