📄 sp-diff.pl
字号:
#!/usr/local/bin/perl## This file takes as input, the files that have been output from# ssleay speed.# It prints a table of the relative differences with %100 being 'no difference'#($#ARGV == 1) || die "$0 speedout1 speedout2\n";%one=&loadfile($ARGV[0]);%two=&loadfile($ARGV[1]);$line=0;foreach $a ("md2","md4","md5","sha","sha1","rc4","des cfb","des cbc","des ede3", "idea cfb","idea cbc","rc2 cfb","rc2 cbc","blowfish cbc","cast cbc") { if (defined($one{$a,8}) && defined($two{$a,8})) { print "type 8 byte% 64 byte% 256 byte% 1024 byte% 8192 byte%\n" unless $line; $line++; printf "%-12s ",$a; foreach $b (8,64,256,1024,8192) { $r=$two{$a,$b}/$one{$a,$b}*100; printf "%12.2f",$r; } print "\n"; } }foreach $a ( "rsa 512","rsa 1024","rsa 2048","rsa 4096", "dsa 512","dsa 1024","dsa 2048", ) { if (defined($one{$a,1}) && defined($two{$a,1})) { $r1=($one{$a,1}/$two{$a,1})*100; $r2=($one{$a,2}/$two{$a,2})*100; printf "$a bits %% %6.2f %% %6.2f\n",$r1,$r2; } }sub loadfile { local($file)=@_; local($_,%ret); open(IN,"<$file") || die "unable to open '$file' for input\n"; $header=1; while (<IN>) { $header=0 if /^[dr]sa/; if (/^type/) { $header=0; next; } next if $header; chop; @a=split; if ($a[0] =~ /^[dr]sa$/) { ($n,$t1,$t2)=($_ =~ /^([dr]sa\s+\d+)\s+bits\s+([.\d]+)s\s+([.\d]+)/); $ret{$n,1}=$t1; $ret{$n,2}=$t2; } else { $n=join(' ',grep(/[^k]$/,@a)); @k=grep(s/k$//,@a); $ret{$n, 8}=$k[0]; $ret{$n, 64}=$k[1]; $ret{$n, 256}=$k[2]; $ret{$n,1024}=$k[3]; $ret{$n,8192}=$k[4]; } } close(IN); return(%ret); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -