byte
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 472
bytetraf 1.0
bytetraf is a small tool for monitoring traffic to and from your machine. more>>
bytetraf project is a small tool for monitoring traffic to and from your machine.
The following information is printed to stdout at a specified time interval: time, interface, bytes received, bytes transfered, and rate.
<<lessThe following information is printed to stdout at a specified time interval: time, interface, bytes received, bytes transfered, and rate.
Download (0.004MB)
Added: 2006-08-17 License: GPL (GNU General Public License) Price:
1164 downloads
ByteName 1.12
ByteName project is a tool that for each byte of the input prints a line consisting of the byte offset. more>>
ByteName project is a tool that for each byte of the input prints a line consisting of the byte offset, the hex value of the byte, the octal value of the byte, and its description in Latin-1, Latin-2, WinLatin1, WinLatin2, or EBCDIC.
A command line flag suppresses printing of bytes within the ASCII range which is useful for locating stray non-ASCII codes.
The available encodings are:
- Latin-1 (ISO-8859-1)
- Latin-2 (ISO-8859-2)
- WinLatin1 (Microsoft Codepage 1252
- WinLatin2 (Microsoft Codepage 1250
- EBCDIC-037 (IBM Codepage 037)
Enhancements:
- This release adds MS DOS Codepages 437 and 850.
- Bugs in MS Windows Codepage 1252 were fixed.
<<lessA command line flag suppresses printing of bytes within the ASCII range which is useful for locating stray non-ASCII codes.
The available encodings are:
- Latin-1 (ISO-8859-1)
- Latin-2 (ISO-8859-2)
- WinLatin1 (Microsoft Codepage 1252
- WinLatin2 (Microsoft Codepage 1250
- EBCDIC-037 (IBM Codepage 037)
Enhancements:
- This release adds MS DOS Codepages 437 and 850.
- Bugs in MS Windows Codepage 1252 were fixed.
Download (0.079MB)
Added: 2007-01-30 License: GPL (GNU General Public License) Price:
998 downloads
Number::Bytes::Human 0.07
Number::Bytes::Human is a Perl module that can convert byte count to human readable format. more>>
Number::Bytes::Human is a Perl module that can convert byte count to human readable format.
SYNOPSIS
use Number::Bytes::Human qw(format_bytes);
$size = format_bytes(0); # 0
$size = format_bytes(2*1024); # 2.0K
$size = format_bytes(1_234_890, bs => 1000); # 1.3M
$size = format_bytes(1E9, bs => 1000); # 1.0G
# the OO way
$human = Number::Bytes::Human->new(bs => 1000, si => 1);
$size = $human->format(1E7); # 10MB
$human->set_options(zero => -);
$size = $human->format(0); # -
THIS IS ALPHA SOFTWARE: THE DOCUMENTATION AND THE CODE WILL SUFFER CHANGES SOME DAY (THANKS, GOD!).
This module provides a formatter which turns byte counts to usual readable format, like 2.0K, 3.1G, 100B. It was inspired in the -h option of Unix utilities like du, df and ls for "human-readable" output.
From the FreeBSD man page of df: http://www.freebsd.org/cgi/man.cgi?query=df
"Human-readable" output. Use unit suffixes: Byte, Kilobyte,
Megabyte, Gigabyte, Terabyte and Petabyte in order to reduce the
number of digits to four or fewer using base 2 for sizes.
byte B
kilobyte K = 2**10 B = 1024 B
megabyte M = 2**20 B = 1024 * 1024 B
gigabyte G = 2**30 B = 1024 * 1024 * 1024 B
terabyte T = 2**40 B = 1024 * 1024 * 1024 * 1024 B
petabyte P = 2**50 B = 1024 * 1024 * 1024 * 1024 * 1024 B
exabyte E = 2**60 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
zettabyte Z = 2**70 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
yottabyte Y = 2**80 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
I have found this link to be quite useful:
http://www.t1shopper.com/tools/calculate/
If you feel like a hard-drive manufacturer, you can start counting bytes by powers of 1000 (instead of the generous 1024). Just use bs => 1000.
But if you are a floppy disk manufacturer and want to start counting in units of 1024000 (for your "1.44 MB" disks)? Then use bs => 1_024_000.
If you feel like a purist academic, you can force the use of metric prefixes according to the Dec 1998 standard by the IEC. Never mind the units for base 1000 are (B, kB, MB, GB, TB, PB, EB, ZB, YB) and, even worse, the ones for base 1024 are (B, KiB, MiB, GiB, TiB, PiB, EiB, ZiB, YiB) with the horrible names: bytes, kibibytes, mebibytes, etc. All you have to do is to use si => 1. Aint that beautiful the SI system? Read about it:
http://physics.nist.gov/cuu/Units/binary.html
You can try a pure Perl "ls -lh"-inspired command with the one-liner, er, two-liner:
$ perl -MNumber::Bytes::Human=format_bytes
-e printf "%5s %sn", format_bytes(-s), $_ for @ARGV *
Why to write such a module? Because if people can write such things in C, it can be written much easier in Perl and then reused, refactored, abused. And then, when it is much improved, some brave soul can port it back to C (if only for the warm feeling of painful programming).
<<lessSYNOPSIS
use Number::Bytes::Human qw(format_bytes);
$size = format_bytes(0); # 0
$size = format_bytes(2*1024); # 2.0K
$size = format_bytes(1_234_890, bs => 1000); # 1.3M
$size = format_bytes(1E9, bs => 1000); # 1.0G
# the OO way
$human = Number::Bytes::Human->new(bs => 1000, si => 1);
$size = $human->format(1E7); # 10MB
$human->set_options(zero => -);
$size = $human->format(0); # -
THIS IS ALPHA SOFTWARE: THE DOCUMENTATION AND THE CODE WILL SUFFER CHANGES SOME DAY (THANKS, GOD!).
This module provides a formatter which turns byte counts to usual readable format, like 2.0K, 3.1G, 100B. It was inspired in the -h option of Unix utilities like du, df and ls for "human-readable" output.
From the FreeBSD man page of df: http://www.freebsd.org/cgi/man.cgi?query=df
"Human-readable" output. Use unit suffixes: Byte, Kilobyte,
Megabyte, Gigabyte, Terabyte and Petabyte in order to reduce the
number of digits to four or fewer using base 2 for sizes.
byte B
kilobyte K = 2**10 B = 1024 B
megabyte M = 2**20 B = 1024 * 1024 B
gigabyte G = 2**30 B = 1024 * 1024 * 1024 B
terabyte T = 2**40 B = 1024 * 1024 * 1024 * 1024 B
petabyte P = 2**50 B = 1024 * 1024 * 1024 * 1024 * 1024 B
exabyte E = 2**60 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
zettabyte Z = 2**70 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
yottabyte Y = 2**80 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
I have found this link to be quite useful:
http://www.t1shopper.com/tools/calculate/
If you feel like a hard-drive manufacturer, you can start counting bytes by powers of 1000 (instead of the generous 1024). Just use bs => 1000.
But if you are a floppy disk manufacturer and want to start counting in units of 1024000 (for your "1.44 MB" disks)? Then use bs => 1_024_000.
If you feel like a purist academic, you can force the use of metric prefixes according to the Dec 1998 standard by the IEC. Never mind the units for base 1000 are (B, kB, MB, GB, TB, PB, EB, ZB, YB) and, even worse, the ones for base 1024 are (B, KiB, MiB, GiB, TiB, PiB, EiB, ZiB, YiB) with the horrible names: bytes, kibibytes, mebibytes, etc. All you have to do is to use si => 1. Aint that beautiful the SI system? Read about it:
http://physics.nist.gov/cuu/Units/binary.html
You can try a pure Perl "ls -lh"-inspired command with the one-liner, er, two-liner:
$ perl -MNumber::Bytes::Human=format_bytes
-e printf "%5s %sn", format_bytes(-s), $_ for @ARGV *
Why to write such a module? Because if people can write such things in C, it can be written much easier in Perl and then reused, refactored, abused. And then, when it is much improved, some brave soul can port it back to C (if only for the warm feeling of painful programming).
Download (0.009MB)
Added: 2007-07-03 License: Perl Artistic License Price:
844 downloads
Audio::TagLib::ByteVector 1.42
Audio::TagLib::ByteVector is a byte vector. more>>
Audio::TagLib::ByteVector is a byte vector.
SYNOPSIS
use Audio::TagLib::ByteVector;
my $i = Audio::TagLib::ByteVector->new();
$i->setData("blah blah blah");
print $i->data(), "n"; # got "blah blah blah"
This class provides a byte vector with some methods that are useful for tagging purposes. Many of the search functions are tailored to what is useful for finding tag related paterns in a data array.
<<lessSYNOPSIS
use Audio::TagLib::ByteVector;
my $i = Audio::TagLib::ByteVector->new();
$i->setData("blah blah blah");
print $i->data(), "n"; # got "blah blah blah"
This class provides a byte vector with some methods that are useful for tagging purposes. Many of the search functions are tailored to what is useful for finding tag related paterns in a data array.
Download (1.4MB)
Added: 2006-09-26 License: Perl Artistic License Price:
1123 downloads
bit 0.4.1
bit is a C++ library for manipulating buffers containing data fields that are not octet (byte) aligned. more>>
bit is a C++ library for manipulating buffers containing data fields that are not octet (byte) aligned.
Binary data formats containing fields that are not octet aligned are still common. One need look no further than the IP header that is present in every packet of data transmitted on the Internet.
Additionally many embedded devices and sensors still communicate via binary formats, and it was for the latter (robotic sensors) that this library was initially developed.
The bit library allows data formats to be specified at run-time through class methods or loaded from XML files at run-time (including any combinations thereof).
A companion library, bitgtk, provides a set of Gtkmm widgets for display of bit buffer representations.
<<lessBinary data formats containing fields that are not octet aligned are still common. One need look no further than the IP header that is present in every packet of data transmitted on the Internet.
Additionally many embedded devices and sensors still communicate via binary formats, and it was for the latter (robotic sensors) that this library was initially developed.
The bit library allows data formats to be specified at run-time through class methods or loaded from XML files at run-time (including any combinations thereof).
A companion library, bitgtk, provides a set of Gtkmm widgets for display of bit buffer representations.
Download (MB)
Added: 2007-03-15 License: LGPL (GNU Lesser General Public License) Price:
955 downloads
basE91 0.6.0
basE91 is an advanced method for encoding binary data as ASCII characters. more>>
basE91 is an advanced method for encoding binary data as ASCII characters. It is similar to UUencode or base64, but is more efficient. The overhead produced by basE91 depends on the input data.
basE91 amounts at most to 23% (versus 33% for base64) and can range down to 14%, which typically occurs on 0-byte blocks. This makes basE91 very useful for transferring larger files over binary insecure connections like e-mail or terminal lines.
Enhancements:
- The encoding/decoding routines have been restructured to be thread-safe, and the syntax of the commandline frontend is more similar to base64 from the GNU coreutils now.
<<lessbasE91 amounts at most to 23% (versus 33% for base64) and can range down to 14%, which typically occurs on 0-byte blocks. This makes basE91 very useful for transferring larger files over binary insecure connections like e-mail or terminal lines.
Enhancements:
- The encoding/decoding routines have been restructured to be thread-safe, and the syntax of the commandline frontend is more similar to base64 from the GNU coreutils now.
Download (0.004MB)
Added: 2006-11-03 License: zlib/libpng License Price:
760 downloads
nbench 2.2.2
nbench is a byte CPU benchmark. more>>
The benchmark program takes less than 10 minutes to run (on most machines) and compares the system it is run on to two benchmark systems (a Dell Pentium 90 with 256 KB cache running MSDOS and an AMD K6/233 with 512 KB cache running Linux).
The archive contains the complete source, documentation, and a binary (Linux elf). The source has been successfully compiled on various operating systems, including SunOS, DEC Unix 4.0, DEC OSF1, HP-UX, DEC Ultrix, MS-DOS, and of course Linux.
This release is based on the Unix port of beta release 2 of BYTE Magazines BYTEmark benchmark program (previously known as BYTEs Native Mode Benchmarks). The port to Linux/Unix was done by Uwe F. Mayer.
Additional changes to the code were made to make the code work with egcs compiler and to make the software packagable. This is a CPU benchmark providing indexes for integer, floating, and memory performance. It is single-threaded and is not designed to measure the performance gain on multi-processor machines.
Running a "make" will create the binary if all goes well. It is called "nbench" and performs a suite of 10 tests and compares the results to a Dell Pentium 90 with 16 MB RAM and 256 KB L2 cache running MSDOS and compiling with the Watcom 10.0 C/C++ compiler.
If you define -DLINUX during compilation (the default) then you also get a comparison to an AMD K6/233 with 32 MB RAM and 512 KB L2-cache running Linux 2.0.32 and using a binary which was compiled with GNU gcc version 2.7.2.3 and GNU libc-5.4.38.
The algorithms were not changed from the source which was obtained from the BYTE web site at http://www.byte.com/bmark/bmark.htm on December 14, 1996. However, the source was modified to better work with 64-bit machines (in particular the random number generator was modified to always work with 32 bit, no matter what kind of hardware you run it on).
Furthermore, for some of the algorithms additional resettings of the data was added to increase the consistency across different hardware. Some extra debugging code was added, which has no impact on normal runs.
In case there is uneven system load due to other processes while this benchmark suite executes, it might take longer to run than on an unloaded system.
This is because the benchmark does some statistical analysis to make sure that the reported results are statistically significant, and an increased variation in individual runs requires more runs to achieve the required statistical confidence.
This is a single-threaded benchmark and is not designed to measure the performance gain on multi-processor machines.
<<lessThe archive contains the complete source, documentation, and a binary (Linux elf). The source has been successfully compiled on various operating systems, including SunOS, DEC Unix 4.0, DEC OSF1, HP-UX, DEC Ultrix, MS-DOS, and of course Linux.
This release is based on the Unix port of beta release 2 of BYTE Magazines BYTEmark benchmark program (previously known as BYTEs Native Mode Benchmarks). The port to Linux/Unix was done by Uwe F. Mayer.
Additional changes to the code were made to make the code work with egcs compiler and to make the software packagable. This is a CPU benchmark providing indexes for integer, floating, and memory performance. It is single-threaded and is not designed to measure the performance gain on multi-processor machines.
Running a "make" will create the binary if all goes well. It is called "nbench" and performs a suite of 10 tests and compares the results to a Dell Pentium 90 with 16 MB RAM and 256 KB L2 cache running MSDOS and compiling with the Watcom 10.0 C/C++ compiler.
If you define -DLINUX during compilation (the default) then you also get a comparison to an AMD K6/233 with 32 MB RAM and 512 KB L2-cache running Linux 2.0.32 and using a binary which was compiled with GNU gcc version 2.7.2.3 and GNU libc-5.4.38.
The algorithms were not changed from the source which was obtained from the BYTE web site at http://www.byte.com/bmark/bmark.htm on December 14, 1996. However, the source was modified to better work with 64-bit machines (in particular the random number generator was modified to always work with 32 bit, no matter what kind of hardware you run it on).
Furthermore, for some of the algorithms additional resettings of the data was added to increase the consistency across different hardware. Some extra debugging code was added, which has no impact on normal runs.
In case there is uneven system load due to other processes while this benchmark suite executes, it might take longer to run than on an unloaded system.
This is because the benchmark does some statistical analysis to make sure that the reported results are statistically significant, and an increased variation in individual runs requires more runs to achieve the required statistical confidence.
This is a single-threaded benchmark and is not designed to measure the performance gain on multi-processor machines.
Download (0.10MB)
Added: 2005-04-12 License: Freely Distributable Price:
927 downloads
jo! 1.1 beta1
jo! is a pure Java Web server that implements the Servlet API, JSP, and HTTP/1.1. more>>
jo! is a pure Java Web server that implements the Servlet API, JSP, and HTTP/1.1. It features advanced thread management, virtual hosts, memory-sensitive file cache, authentication using a role abstraction, automatic compressed transfer of text or HTML files, auto internationalization, auto servlet and JSP reloading, auto reload of WARs, hot deployment of WARs, JSR-45 support, and an easy-to-use Swing console.
Main features:
- HTTP/1.1 including byte-ranges, auto-chunking, pipelining, etc.
- Servlet API 2.2 (2.3 starting with jo! 1.1)
- JSP 1.1 (1.2 starting with jo! 1.1)
- Auto reload of WARs
- Hot deployment of WARs
- Drag and drop deployment of WARs
- Auto internationalization
- Auto servlet and jsp reloading
- Easy to use Swing console
- Advanced thread management
- Memory sensitive file cache
- Automatic compressed transfer of text or html files
- Virtual hosts
- Mac OS X support
- Embeddable
<<lessMain features:
- HTTP/1.1 including byte-ranges, auto-chunking, pipelining, etc.
- Servlet API 2.2 (2.3 starting with jo! 1.1)
- JSP 1.1 (1.2 starting with jo! 1.1)
- Auto reload of WARs
- Hot deployment of WARs
- Drag and drop deployment of WARs
- Auto internationalization
- Auto servlet and jsp reloading
- Easy to use Swing console
- Advanced thread management
- Memory sensitive file cache
- Automatic compressed transfer of text or html files
- Virtual hosts
- Mac OS X support
- Embeddable
Download (3.8MB)
Added: 2005-07-07 License: GPL (GNU General Public License) Price:
1569 downloads
bitgtkmm 0.4.0
bit is a C++ library for manipulating buffers containing data fields that are not octet (byte) aligned. more>>
bitgtkmm is a C++ library for manipulating buffers containing data fields that are not octet (byte) aligned.
bitgtkmm is a collection of gtkmm widgets for displaying and manipulating data structures in the bit library.
Installation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes a while. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Type `make install to install the programs and any data files and documentation.
4. You can remove the program binaries and object files from the source code directory by typing `make clean.
Enhancements:
- Updated to build against bit 0.4.0.
<<lessbitgtkmm is a collection of gtkmm widgets for displaying and manipulating data structures in the bit library.
Installation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes a while. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Type `make install to install the programs and any data files and documentation.
4. You can remove the program binaries and object files from the source code directory by typing `make clean.
Enhancements:
- Updated to build against bit 0.4.0.
Download (MB)
Added: 2007-03-15 License: GPL (GNU General Public License) Price:
953 downloads
Robotworld 0.1
Robotworld is a distributed world for programmable robots. more>>
Robot World aims to be a distributed physical environment inhabited by programmable robots, spanning across countless computers on the internet in true peer-to-peer fashion.
Robot World components:
- Parser / compiler compiles robot programs into byte code, stored in a .xml file
- Inject - send a robot program to the world
- RobotWorld - the world simulation program
- dsm - the bytecode disassembler
- rowo.y - language grammar file
parser
Compile a robot. Creates an .xml file from a .r file
$ parser sample.r
dsm
Disassembles a robot .xml file.
$ dsm sample.xml
robotworld
Testbed. Receiving server for "inject" - see below.
$ robotworld
inject
Send robot to world. "robotworld" must be running.
$ inject sample.xml
<<lessRobot World components:
- Parser / compiler compiles robot programs into byte code, stored in a .xml file
- Inject - send a robot program to the world
- RobotWorld - the world simulation program
- dsm - the bytecode disassembler
- rowo.y - language grammar file
parser
Compile a robot. Creates an .xml file from a .r file
$ parser sample.r
dsm
Disassembles a robot .xml file.
$ dsm sample.xml
robotworld
Testbed. Receiving server for "inject" - see below.
$ robotworld
inject
Send robot to world. "robotworld" must be running.
$ inject sample.xml
Download (0.023MB)
Added: 2005-04-18 License: GPL (GNU General Public License) Price:
1650 downloads
Cable Modem Counter 0.31
Cable Modem Counter is a cable modem (or any Ethernet connection) IP byte logger. more>>
Cable Modem Counter is a cable modem (or any Ethernet connection) IP byte logger. It is not a packet sniffer, it just gathers network statistics.
It is composed of two parts:
A daemon, which logs all the incoming/outgoing connections and creates pairs of source/destination IP addresses with a byte counter and direction of traffic (inbound or outbound) attached. It stores it periodically on a file (or files).It also accepts network connections to gather the statistics and can also run users scripts which can send commands to the daemon and receive information.
An user application, which can be run on console or X (wmaker/kde bar?) and connects to the daemon and collects the statistics, and then making the separation between national/international , inbound/outbound , etc (not done yet)
<<lessIt is composed of two parts:
A daemon, which logs all the incoming/outgoing connections and creates pairs of source/destination IP addresses with a byte counter and direction of traffic (inbound or outbound) attached. It stores it periodically on a file (or files).It also accepts network connections to gather the statistics and can also run users scripts which can send commands to the daemon and receive information.
An user application, which can be run on console or X (wmaker/kde bar?) and connects to the daemon and collects the statistics, and then making the separation between national/international , inbound/outbound , etc (not done yet)
Download (0.10MB)
Added: 2006-07-05 License: GPL (GNU General Public License) Price:
1213 downloads
libTLC54x 0.1.0
libTLC54x is a library to communicate with the Texas Instruments TLC548/TLC549 8-Bit A/D-Converter. more>>
libTLC54x is a library to communicate with the Texas Instruments TLC548/TLC549 8-Bit A/D-Converter via serial or parallel connector.
The library just needs the device to be opened and than you can read data from the TLC54x. libTLC54x hides the process of getting the data bit by bit and also hides the wait states.
Main features:
- Simple interface
- Get one byte of data with one simple call from the A/D-Converter
Enhancements:
- updated README file
- made autoconf and automake scripts
<<lessThe library just needs the device to be opened and than you can read data from the TLC54x. libTLC54x hides the process of getting the data bit by bit and also hides the wait states.
Main features:
- Simple interface
- Get one byte of data with one simple call from the A/D-Converter
Enhancements:
- updated README file
- made autoconf and automake scripts
Download (MB)
Added: 2007-06-27 License: LGPL (GNU Lesser General Public License) Price:
850 downloads
pyctd 0.3.3 (PHP frontend)
pyctd is a XML-RPC service for monitoring and altering Netfilter connections for network admins. more>>
pyctd is a XML-RPC service for monitoring and altering Netfilter connections for network admins.
It has the following functionnalities :
Connections listing (with byte rate of connections)
Entries removal
Modification of mark and timeout
pyctd is a free software released under GNU General Public License. Please see COPYING file for further informations.
<<lessIt has the following functionnalities :
Connections listing (with byte rate of connections)
Entries removal
Modification of mark and timeout
pyctd is a free software released under GNU General Public License. Please see COPYING file for further informations.
Download (0.022MB)
Added: 2007-05-29 License: GPL (GNU General Public License) Price:
881 downloads
Other version of pyctd
License:GPL (GNU General Public License)
hYPerSonic 1.2.0
hYPerSonic is a program for building and manipulating signal processing pipelines from Python scripts. more>>
hYPerSonic is a program for building and manipulating signal processing pipelines from Python scripts. It is designed for real-time control. It includes objects for oscillators, filters, file IO, and soundcard and memory operations. It is low-level: every byte counts.
Just recently worked out how to call back into the python interpreter from the portaudio (v18) callback. This is primarily for OSX (and windows?) where the mutex performance was unacceptable. Unfortunately this callback style (so far) breaks all existing code (which is based on a main loop in python).
It is working currently only on Linux and OSX.
<<lessJust recently worked out how to call back into the python interpreter from the portaudio (v18) callback. This is primarily for OSX (and windows?) where the mutex performance was unacceptable. Unfortunately this callback style (so far) breaks all existing code (which is based on a main loop in python).
It is working currently only on Linux and OSX.
Download (0.26MB)
Added: 2006-08-01 License: GPL (GNU General Public License) Price:
701 downloads
Des a1
Des package contains the Des extension module for Perl. more>>
Des package contains the Des extension module for Perl.
The Des extension module gives access to the DES library.
The following is a brief and over-simplified description of the relevant stuff about DES.
DES keys are 8-byte blocks. A key is passed to a perl function as an 8-byte string. Before keys can be used to encrypt or decrypt data, the key needs to be transformed into a key schedule using the function set_key. There is a certain amount of overhead in creating these key schedules (which are 128 bytes or 256 bytes depending on implementation and architecture) so they can be created and cached for later if desired. Encryption and decryption can be done in 3 modes:
ECB (electronic code book) mode
Takes a des_cblock (perl 8-byte string) and produces another des_cblock. (Very rarely useful for large amounts of plain text, subject to known plaintext attacks under certain circumstances, only slightly faster than CBC or PCBC mode, and you lose even this advantage in perl).
CBC (cipher block chaining) mode
Takes an arbitrary length string, pads it out (internally) on the right with NULs to a multiple of 8-bytes. Encrypts/decrypts the data and produces output (same size as padded input) which is an exact multiple of 8 bytes long. Changing a single bit of the cleartext affects all the following ciphertext. However, changing a single bit of the ciphertext affects only the corresponding cleartext block and the following block. This is occasionally an advantage but is usually a disadvantage.
PCBC mode
A modified CBC mode with indefinite proagation of single bit errors both from cleartext to ciphertext and from ciphertext to cleartext. "Usually" the best mode (for certain values of "usually").
Functions imported by use Des.
string_to_key (STRING)
Takes an arbitrary STRING and munges it (with a one-way function) into a DES key, which is returned.
set_key (KEY)
The DES key KEY (which must be a string of exactly 8 bytes) is turned into a key schedule which is returned.
ecb_encrypt (INPUT, SCHEDULE)
The INPUT argument (which must be a string of exactly 8 bytes) is encrypted using ECB mode using key schedule SCHEDULE (created using set_key) and the resulting 8-byte string is returned.
ecb_decrypt (INPUT, SCHEDULE)
The INPUT argument (which must be a string of exactly 8 bytes) is decrypted using ECB mode using key schedule SCHEDULE (created using set_key) and the resulting 8-byte string is returned.
cbc_encrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and encrypted using CBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the encrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
cbc_decrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and decrypted using CBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the decrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
pcbc_encrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and encrypted using PCBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the encrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
pcbc_decrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and decrypted using PCBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the decrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
pcbc_cksum (INPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. CBC mode is used to generate an 8-byte cryptographic checksum using key schedule SCHEDULE and initialisation vector IV. This checksum is returned.
Functions in package Des which can be imported
random_key ()
Produces a random DES key based on current time, PID and a counter.
read_password (PROMPT [, VERIFY])
Prints PROMPT on the terminal, turns off echo if possible and reads a password from the keyboard. If the optional VERIFY argument is present and true than the password is prompted for a second time and the two are compared. If different, the prompting is repeated. The resulting string is turned into a DES key (using string_to_key (q.v.) internally) and that key is returned.
<<lessThe Des extension module gives access to the DES library.
The following is a brief and over-simplified description of the relevant stuff about DES.
DES keys are 8-byte blocks. A key is passed to a perl function as an 8-byte string. Before keys can be used to encrypt or decrypt data, the key needs to be transformed into a key schedule using the function set_key. There is a certain amount of overhead in creating these key schedules (which are 128 bytes or 256 bytes depending on implementation and architecture) so they can be created and cached for later if desired. Encryption and decryption can be done in 3 modes:
ECB (electronic code book) mode
Takes a des_cblock (perl 8-byte string) and produces another des_cblock. (Very rarely useful for large amounts of plain text, subject to known plaintext attacks under certain circumstances, only slightly faster than CBC or PCBC mode, and you lose even this advantage in perl).
CBC (cipher block chaining) mode
Takes an arbitrary length string, pads it out (internally) on the right with NULs to a multiple of 8-bytes. Encrypts/decrypts the data and produces output (same size as padded input) which is an exact multiple of 8 bytes long. Changing a single bit of the cleartext affects all the following ciphertext. However, changing a single bit of the ciphertext affects only the corresponding cleartext block and the following block. This is occasionally an advantage but is usually a disadvantage.
PCBC mode
A modified CBC mode with indefinite proagation of single bit errors both from cleartext to ciphertext and from ciphertext to cleartext. "Usually" the best mode (for certain values of "usually").
Functions imported by use Des.
string_to_key (STRING)
Takes an arbitrary STRING and munges it (with a one-way function) into a DES key, which is returned.
set_key (KEY)
The DES key KEY (which must be a string of exactly 8 bytes) is turned into a key schedule which is returned.
ecb_encrypt (INPUT, SCHEDULE)
The INPUT argument (which must be a string of exactly 8 bytes) is encrypted using ECB mode using key schedule SCHEDULE (created using set_key) and the resulting 8-byte string is returned.
ecb_decrypt (INPUT, SCHEDULE)
The INPUT argument (which must be a string of exactly 8 bytes) is decrypted using ECB mode using key schedule SCHEDULE (created using set_key) and the resulting 8-byte string is returned.
cbc_encrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and encrypted using CBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the encrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
cbc_decrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and decrypted using CBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the decrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
pcbc_encrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and encrypted using PCBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the encrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
pcbc_decrypt (INPUT, OUTPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. INPUT is taken and decrypted using PCBC mode with key schedule SCHEDULE and initialisation vector IV. If OUTPUT is not undef then it assumed to be an lvalue which is grown (if necessary) and receives the decrypted output. Whether or not OUTPUT is undef, the output is also available as the return value of the function.
pcbc_cksum (INPUT, SCHEDULE, IV)
The INPUT argument can be of arbitrary length, although it will be internally padded on the right with NULs to the nearest multiple of 8 bytes. CBC mode is used to generate an 8-byte cryptographic checksum using key schedule SCHEDULE and initialisation vector IV. This checksum is returned.
Functions in package Des which can be imported
random_key ()
Produces a random DES key based on current time, PID and a counter.
read_password (PROMPT [, VERIFY])
Prints PROMPT on the terminal, turns off echo if possible and reads a password from the keyboard. If the optional VERIFY argument is present and true than the password is prompted for a second time and the two are compared. If different, the prompting is repeated. The resulting string is turned into a DES key (using string_to_key (q.v.) internally) and that key is returned.
Download (0.010MB)
Added: 2007-05-10 License: Perl Artistic License Price:
897 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above byte search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed