51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
|
* by https://t.me/ibnux
|
|
**/
|
|
|
|
class Password
|
|
{
|
|
|
|
public static function _crypt($password)
|
|
{
|
|
return sha1($password);
|
|
}
|
|
|
|
public static function _verify($user_input, $hashed_password)
|
|
{
|
|
if (sha1($user_input) == $hashed_password) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
public static function _uverify($user_input, $hashed_password)
|
|
{
|
|
if ($user_input == $hashed_password) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
public static function _gen()
|
|
{
|
|
$pass = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@#!123456789', 8)), 0, 8);
|
|
return $pass;
|
|
}
|
|
|
|
/**
|
|
* verify CHAP password
|
|
* @param string $realPassword
|
|
* @param string $CHAPassword
|
|
* @param string $CHAPChallenge
|
|
* @return bool
|
|
*/
|
|
public static function chap_verify($realPassword, $CHAPassword, $CHAPChallenge){
|
|
$CHAPassword = substr($CHAPassword, 2);
|
|
$chapid = substr($CHAPassword, 0, 2);
|
|
$result = hex2bin($chapid) . $realPassword . hex2bin(substr($CHAPChallenge, 2));
|
|
$response = $chapid . md5($result);
|
|
return ($response != $CHAPassword);
|
|
}
|
|
}
|