Salve,
sto facendo una libreria con molte funzioni.
Il mio problema è che questo modulo usa librerie molto pesanti, come ad esempio le varie Digest per il cacolo dell'hashing, usa la libreria RSA che è strapesante, e altre librerie di criptazione.
Stavo pensado di poter richiamare una certa libreria solo se il programma principale chiama una certa funzione (cioè solo se ne abbiamo strettamente bisogno).
Ad esempio devo criptare un testo con blowfish:
codice:
sub CryptBlowFish {
my ($key, $testo_normale)=@_;
eval "use Crypt::BlowFish;";
my ($pezzo,$cipher,$testo_criptato);
return undef unless $cipher = new Crypt::Blowfish $key;
my $testo_normale=pack("I/a*", $testo_normale);
while (length($testo_normale)>0) {
$pezzo=substr($testo_normale, 0, 8, "");
$pezzo.="\x00"x(8-length($pezzo)) if (length($pezzo)<8);
$testo_criptato.=$cipher->encrypt($pezzo);
}
return $testo_criptato;
}
Come si vede, carico la libreria Crypt::BlowFish con eval.
Il "trucco" sembra non dare problemi e l'esecuzione è impeccabile.
Volevo sapere se questo metodo lo posso usare o se mi devo vergognare ad usarlo. Cioè, non voglio sapere se funziona ma se posso eticamente farlo
ciao e grazie in anticipo.