[SUCS Devel] [Git][sucssite/sucs-site][master] 2 commits: Sha512 passwords
Imran Hussain (@imranh)
imranh at sucs.org
Thu Dec 23 11:57:38 GMT 2021
Imran Hussain pushed to branch master at sucssite / sucs-site
Commits:
dcc4902a by Imran Hussain at 2021-12-23T11:57:34+00:00
Sha512 passwords
- - - - -
99f489ed by Imran Hussain at 2021-12-23T11:57:35+00:00
Merge branch 'sha512-passwords' into 'master'
Sha512 passwords
See merge request sucssite/sucs-site!123
- - - - -
2 changed files:
- components/options.php
- lib/member_functions.php
Changes:
=====================================
components/options.php
=====================================
@@ -5,6 +5,8 @@ require_once("../lib/validation.php");
require_once("Net/MAC.php");
include_once("../lib/date.php");
+// password hash, renewal functions
+include_once("../lib/member_functions.php");
// Some Constants
// These could possibly be moved somewhere saner?
@@ -47,7 +49,7 @@ function changePassword($oldpass, $newpass1, $newpass2)
// if everything looks OK, attempt to make the change
$success = ldap_mod_replace($ldap, "uid=" . $session->username . ",ou=People,dc=sucs,dc=org",
- array('userpassword' => "{SHA}" . base64_encode(pack("H*", sha1($newpass1)))));
+ array('userpassword' => "{CRYPT}" . cryptPassword($newpass1)));
ldap_close($ldap);
return $success;
@@ -214,7 +216,6 @@ function updateRenew()
return FALSE;
}
- include_once("../lib/member_functions.php");
renew_membership($member['username']);
$sucsDB->Execute("update signup set activated=NOW(), username=? where id=?", array($member['username'], $signup['id']));
return TRUE;
=====================================
lib/member_functions.php
=====================================
@@ -29,6 +29,19 @@ function make_password($length = 8)
return $password;
}
+// https://stackoverflow.com/a/44428794
+function cryptPassword($password, $salt = "", $rounds = 5000)
+{
+ if ($salt == "") {
+ // Generate random salt
+ $salt = substr(bin2hex(openssl_random_pseudo_bytes(16)),0,16);
+ }
+ // $6$ specifies SHA512
+ $hash = crypt($password, sprintf('$6$rounds=%d$%s$', $rounds, $salt));
+
+ return $hash;
+}
+
function generateUid()
{
@@ -63,7 +76,7 @@ function generateLdif($uid, $password, $type, $realname, $username)
// explode the realname
$nameexplode = explode(' ', trim($realname));
// hash the password
- $ldappassword = "{SHA}" . base64_encode(pack("H*", sha1($password)));
+ $ldappassword = "{CRYPT}" . cryptPassword($password);
// compile ldif
$ldif = "dn: uid=" . $username . ",ou=People,dc=sucs,dc=org\n";
$ldif .= "uid: " . $username . "\n";
View it on GitLab: https://projects.sucs.org/sucssite/sucs-site/-/compare/9e43fafb3e1fe7270575704a31dc498da858283a...99f489eda886dc441584f762a661c1c83c6a3426
--
View it on GitLab: https://projects.sucs.org/sucssite/sucs-site/-/compare/9e43fafb3e1fe7270575704a31dc498da858283a...99f489eda886dc441584f762a661c1c83c6a3426
You're receiving this email because of your account on projects.sucs.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sucs.org/pipermail/devel/attachments/20211223/4167e425/attachment-0001.html>
More information about the Devel
mailing list