diff options
-rw-r--r-- | lib/HashAlgorithm/MD5.php | 75 | ||||
-rw-r--r-- | lib/HashAlgorithm/SHA1.php | 75 | ||||
-rw-r--r-- | templates/admin.php | 4 |
3 files changed, 152 insertions, 2 deletions
diff --git a/lib/HashAlgorithm/MD5.php b/lib/HashAlgorithm/MD5.php new file mode 100644 index 0000000..5d7548d --- /dev/null +++ b/lib/HashAlgorithm/MD5.php @@ -0,0 +1,75 @@ +<?php +/** + * Nextcloud - user_sql + * Copyright (C) 2012-2018 Andreas Böhler <dev (at) aboehler (dot) at> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +namespace OCA\user_sql\HashAlgorithm; + +/** + * MD5 password hash implementation. + * @author Marcin Łojewski <dev@mlojewski.me> + */ +class MD5 implements HashAlgorithm +{ + /** + * @var MD5 + */ + private static $instance; + + private function __construct() + { + } + + /** + * @return MD5 + */ + public static function getInstance() + { + if (self::$instance === null) { + self::$instance = new MD5(); + } + return self::$instance; + } + + /** + * @inheritdoc + */ + public function getVisibleName() + { + return "MD5"; + } + + /** + * @inheritdoc + */ + public function getPasswordHash($password) + { + return md5($password); + } + + /** + * @inheritdoc + */ + public function checkPassword($password, $dbHash) + { + return md5($password) === $dbHash; + } + + private function __clone() + { + } +} diff --git a/lib/HashAlgorithm/SHA1.php b/lib/HashAlgorithm/SHA1.php new file mode 100644 index 0000000..6913adb --- /dev/null +++ b/lib/HashAlgorithm/SHA1.php @@ -0,0 +1,75 @@ +<?php +/** + * Nextcloud - user_sql + * Copyright (C) 2012-2018 Andreas Böhler <dev (at) aboehler (dot) at> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +namespace OCA\user_sql\HashAlgorithm; + +/** + * SHA1 password hash implementation. + * @author Marcin Łojewski <dev@mlojewski.me> + */ +class SHA1 implements HashAlgorithm +{ + /** + * @var SHA1 + */ + private static $instance; + + private function __construct() + { + } + + /** + * @return SHA1 + */ + public static function getInstance() + { + if (self::$instance === null) { + self::$instance = new SHA1(); + } + return self::$instance; + } + + /** + * @inheritdoc + */ + public function getVisibleName() + { + return "SHA1"; + } + + /** + * @inheritdoc + */ + public function getPasswordHash($password) + { + return sha1($password); + } + + /** + * @inheritdoc + */ + public function checkPassword($password, $dbHash) + { + return sha1($password) === $dbHash; + } + + private function __clone() + { + } +} diff --git a/templates/admin.php b/templates/admin.php index fbc35d8..a181c11 100644 --- a/templates/admin.php +++ b/templates/admin.php @@ -104,7 +104,7 @@ $cfgClass = 'section'; <p><label for="set_crypt_type"><?php p($l->t('Encryption Type')); ?></label> <?php $crypt_types = array( 'drupal' => 'Drupal 7', - 'md5' => 'MD5', + 'MD5' => 'MD5', 'md5crypt' => 'MD5 Crypt', 'Cleartext' => 'Cleartext', 'mysql_encrypt' => 'mySQL ENCRYPT()', @@ -115,7 +115,7 @@ $cfgClass = 'section'; 'joomla2' => 'Joomla > 2.5.18 phpass', 'ssha256' => 'Salted SSHA256', 'redmine' => 'Redmine', - 'sha1' => 'SHA1', + 'SHA1' => 'SHA1', 'courier_md5' => 'Courier base64-encoded MD5', 'courier_md5raw' => 'Courier hexadecimal MD5', 'courier_sha1' => 'Courier base64-encoded SHA1', |