From: Dietmar Maurer Date: Thu, 30 Mar 2017 15:49:26 +0000 (+0200) Subject: PVE::Tools::encrypt_pw() - new helper copied from pve-access-control X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=9867ff7a8327fc2847de299caa05e94211859b12;hp=9b8c792f1da6f8ec8345145e781305b4f809dbeb PVE::Tools::encrypt_pw() - new helper copied from pve-access-control --- diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm index fe35ef2..406aa2a 100644 --- a/src/PVE/Tools.pm +++ b/src/PVE/Tools.pm @@ -1443,4 +1443,18 @@ sub enter_systemd_scope { die "systemd job never completed\n" if !$done; } +my $salt_starter = time(); + +sub encrypt_pw { + my ($pw) = @_; + + $salt_starter++; + my $salt = substr(Digest::SHA::sha1_base64(time() + $salt_starter + $$), 0, 8); + + # crypt does not want '+' in salt (see 'man crypt') + $salt =~ s/\+/X/g; + + return crypt(encode("utf8", $pw), "\$5\$$salt\$"); +} + 1;