国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

linux中解析.htpasswd文件的PHP類

2024-05-04 21:48:41
字體:
供稿:網(wǎng)友

linux中解析.htpasswd文件的PHP類有需要的朋友可參考一下,介紹一個使用方法,實例代碼如下:

  1. $passwdHandler = new Htpasswd('/home/myuser/.htpasswd');  
  2. // Add a user with name 'user1' and password 'I prefer to use passphrase rather than password.' if it doesn't exist in .htpasswd.  
  3. $passwdHandler -> addUser('user1''I prefer to use passphrase rather than password.');  
  4. // Delete the user 'user1' if it exists in .htpasswd.  
  5. $passwdHandler -> deleteUser('user1');  
  6. // Check if user 'user1' exists in .htpasswd.  
  7. if ($passwdHandler -> doesUserExist('user1')) {  
  8. // User 'user1' exists.  

htpasswd類,代碼如下:

  1. class Htpasswd {  
  2. private $file = '';  
  3. private $salt = 'AynlJ2H.74VEfI^BZElc-Vb6G0ezE9a55-Wj';  
  4. private function write($pairs = array()) {  
  5. $str = '';  
  6. foreach ($pairs as $username => $password) {  
  7. $str .= "$username:{SHA}$passwordn";  
  8. }  
  9. file_put_contents($this -> file, $str);  
  10. }  
  11. private function read() {  
  12. $pairs = array();  
  13. $fh = fopen($this -> file, 'r');  
  14. while (!feof($fh)) {  
  15. $pair_str = str_replace("n"''fgets($fh));  
  16. $pair_array = explode(':{SHA}'$pair_str);  
  17. if (count($pair_array) == 2) {  
  18. $pairs[$pair_array[0]] = $pair_array[1];  
  19. }  
  20. }  
  21. return $pairs;  
  22. }  
  23. private function getHash($clear_password = '') {  
  24. if (!emptyempty($clear_password)) {  
  25. return base64_encode(sha1($clear_password, true));  
  26. else {  
  27. return false;  
  28. }  
  29. }  
  30. public function __construct($file) {  
  31. if (file_exists($file)) {  
  32. $this -> file = $file;  
  33. else {  
  34. die($file." doesn't exist.");  
  35. return false;  
  36. }  
  37. }  
  38. public function addUser($username = ''$clear_password = '') {  
  39. if (!emptyempty($username) && !emptyempty($clear_password)) {  
  40. $all = $this -> read();  
  41. if (!array_key_exists($username$all)) {  
  42. $all[$username] = $this -> getHash($clear_password);  
  43. $this -> write($all);  
  44. }  
  45. else {  
  46. return false;  
  47. }  
  48. }  
  49. public function deleteUser($username = '') {  
  50. $all = $this -> read();  
  51. if (array_key_exists($username$all)) {  
  52. unset($all[$username]);  
  53. $this -> write($all);  
  54. else {  
  55. return false;  
  56. }  
  57. }  
  58. public function doesUserExist($username = '') {  
  59. $all = $this -> read();  
  60. if (array_key_exists($username$all)) {  
  61. return true; //開源代碼Vevb.com 
  62. else {  
  63. return false;  
  64. }  
  65. }  
  66. public function getClearPassword($username) {  
  67. return strtolower(substr(sha1($username.$this -> salt), 4, 12));  
  68. }  
  69. }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 呼玛县| 河间市| 叙永县| 扎赉特旗| 华蓥市| 晋城| 资中县| 江油市| 五大连池市| 雅江县| 溧水县| 宁远县| 西乌珠穆沁旗| 沙湾县| 桦南县| 乾安县| 准格尔旗| 东丰县| 承德县| 黑龙江省| 吕梁市| 巴东县| 乌拉特后旗| 秦皇岛市| 北流市| 永平县| 巫山县| 库伦旗| 阜宁县| 铅山县| 辰溪县| 宿州市| 庆安县| 噶尔县| 益阳市| 镇江市| 宝山区| 龙南县| 重庆市| 肇东市| 罗田县|