Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

pad and unpad byte array

Demonstrates using the pad and unpad methods of CkByteArray.

Download Chilkat Perl Module

use chilkat;


$data_bytes = pack "C10", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
$data = new chilkat::CkByteData();
$data->append($data_bytes,10);

#  These are the padding options for the "pad" method:
#  0 = Each padding byte is the pad count (16 extra added if size is already a multiple of 16)
#  1 = Random bytes except the last is the pad count (16 extra added if size is already multiple of 16)
#  2 = Pad with random data. (If already a multiple of 16, no padding is added).
#  3 = Pad with NULLs. (If already a multiple of 16, no padding is added).
#  4 = Pad with SPACE chars(0x20). (If already a multiple of 16, no padding is added).

#  We'll pad to a block size of 16 bytes.
$blockSize = 16;

$paddingScheme = 0;

#  Pad, display the padded byte data, unpad, then re-display
$data->pad($blockSize,$paddingScheme);
print $data->getEncoded("hex") . "\r\n";
$data->unpad(16,$paddingScheme);
print $data->getEncoded("hex") . "\r\n";
print "----" . "\r\n";

$paddingScheme = 1;
#  Pad, display the padded byte data, unpad, then re-display
$data->pad($blockSize,$paddingScheme);
print $data->getEncoded("hex") . "\r\n";
$data->unpad(16,$paddingScheme);
print $data->getEncoded("hex") . "\r\n";
print "----" . "\r\n";

#  There is no unpadding with schemes 2,3, and 4
$data2_bytes = pack "C10", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
$data2 = new chilkat::CkByteData();
$data2->append($data2_bytes,10);
$paddingScheme = 2;
#  Pad and display the padded byte data
$data2->pad($blockSize,$paddingScheme);
print $data2->getEncoded("hex") . "\r\n";
print "----" . "\r\n";

#  There is no unpadding with schemes 2,3, and 4
$data3_bytes = pack "C10", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
$data3 = new chilkat::CkByteData();
$data3->append($data3_bytes,10);
$paddingScheme = 3;
#  Pad and display the padded byte data
$data3->pad($blockSize,$paddingScheme);
print $data3->getEncoded("hex") . "\r\n";
print "----" . "\r\n";

#  There is no unpadding with schemes 2,3, and 4
$data4_bytes = pack "C10", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
$data4 = new chilkat::CkByteData();
$data4->append($data4_bytes,10);
$paddingScheme = 4;
#  Pad and display the padded byte data
$data4->pad($blockSize,$paddingScheme);
print $data4->getEncoded("hex") . "\r\n";
print "----" . "\r\n";
 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2007 Chilkat Software, Inc. All Rights Reserved.