PERL: MD5 İşlemleri (Bölüm-1)
Yapmak istediğim şey arşiv dosyalarımın md5 karşılıklarının ilk 6 hanesini zip dosyasının sonuna eklemek! Ne işe yarayacak diye sorabilirsiniz:
1) Dosyalarımı tekil hale getirir (versiyon)
2) Dosyalarımın sunucu üzerindeki güvenliğini sağlar (dışarıdan deneme yanıma ile indirilmesinin önüne geçer, gereksiz trafiği azaltır)
3) Dosya güvenliğini sağlar (İndirilen dosya doğru mu vs?, yapılması gereken indirdiğiniz dosyanın md5 ini almak ve ilk 6 hanelerini karşılaştırmak)
linux bir dosyanın md5 lenmiş karşılığını bulmak için terminale
md5sum dosyaadiniz.uzanti
Perl de bir dosyanın md5 lenmiş karşılıklarını bulmak için hazır bir kütüphane kullanacağız. Ama bunun için ilgili modülü kurmamız gerekiyor.
Terminalde
sudo perl -MCPAN -e shell
install Digest::MD5::File
#!/usr/bin/perl -w use Digest::MD5::File qw( file_md5_hex ); if($#ARGV ne 0){ die("Dosya adi giriniz!\n");} my $md5 = file_md5_hex( $ARGV[0] ); my $vals=substr(uc($md5),0,6); my $file=$ARGV[0]; my $file1=$file; $file1=~s/\./_$vals\./; system("mv $file $file1"); print $file."-->".$file1."\n";
kullanım
perl md5.pl test.zip