NAME
Object::Signature::Portable - generate portable signatures of objects
REQUIREMENTS
This module requires Perl v5.10 or newer, and the following non-core
modules:
Crypt::Digest
Exporter::Lite
JSON::MaybeXS
SYNOPSIS
use Object::Signature::Portable;
my $sig = signature( $object ); # MD5 hex of object signature
my $sig = signature(
digest => 'SHA1', # SHA-1 digest
format => 'b64udigest', # as URL-safe base-64
data => $object,
);
DESCRIPTION
This module provides a simple function for generating *portable*
cryptographic signatures of Perl data structures.
The object is serialized into a canonical JSON structure, and then
hashed using the MD5 algorithm.
Any two machines running different versions of Perl on different
architectures should produce identical signatures.
Note that this module is useful in cases where the consistency of
signatures between machine is more important than the speed of signature
generation.
However, the serialization method, hash algorithm and signature format
can be customized, as needed.
SEE ALSO
Similar Modules
Object::Signature
This uses Storable to serialise objects and generate a MD5
hexidecimal string as a signature.
This has the drawback that machines with different architectures,
different versions of Perl, or different versions Storable may not
produce the same signature for the same data. (This does not mean
that Storable is unable to de-serialize data produced by different
versions; it only means that the serialized data is not identical
across different versions.)
AUTHOR
Robert Rothenberg `<rrwo@cpan.org>' (on behalf of Foxtons, Ltd.)
LICENSE AND COPYRIGHT
Copyright 2013-2014 Robert Rothenberg.
This program is free software; you can redistribute it and/or modify it
under the terms of the the Artistic License (2.0). You may obtain a copy
of the full license at:
http://www.perlfoundation.org/artistic_license_2_0