Perl 中是否有一个包/函数可以让我以一种简单的方式
- 短信息(例如数字、短字符串)
- 像哈希值/校验和(例如 MD5)
- 具有良好的区别(例如像 MDx、SHAx 这样的加密哈希)
- 表示复杂数据结构的内容(例如散列数组的散列)。
我想到的最好的主意是
将我的结构序列化为字符串(例如使用 Data::Dumper)
使用 MDx 对字符串进行哈希处理
但也许有一些更优雅的方式。
Perl 中是否有一个包/函数可以让我以一种简单的方式
我想到的最好的主意是
将我的结构序列化为字符串(例如使用 Data::Dumper)
使用 MDx 对字符串进行哈希处理
但也许有一些更优雅的方式。
过去,我使用 Data::Dumper(带有排序键,如 @mob 所指)+ Digest::MD5 方法来创建复杂数据结构的校验和。就我而言,目的是比较两个或多个数据结构是否相等。
(非常)简单的片段:
use Data::Dumper qw( Dumper ) ;
use Digest::MD5 qw( md5_hex) ;
sub digest {
my $data = shift ;
local $Data::Dumper::Sortkeys = 1;
return md5_hex( Dumper($data) ) ;
}
概要:
my $cplx_data_checksum = digest({
c => 1 ,
b => [ 1 , { a => 2 } ]
}) ;
有关 Digest 算法速度的见解,请查看https://metacpan.org/pod/Digest#Digest-speed上的 Digest Perl 模块
希望这可以帮助
我会考虑使用
我已经将它用于类似的问题并且对它非常满意,它速度很快,提供了我能想到的所有选项,并且根本没有花费我很长时间。
例如,它允许您选择如何处理对象,以及是否对散列上的键进行排序,这非常有用。
玩得开心!