国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 孝昌县| 淮阳县| 平舆县| 固原市| 和林格尔县| 屏南县| 富阳市| 郑州市| 义乌市| 嫩江县| 麟游县| 共和县| 台湾省| 乡宁县| 宁陵县| 石首市| 金湖县| 嘉义县| 郯城县| 依安县| 溆浦县| 兰坪| 民丰县| 岢岚县| 图木舒克市| 合川市| 上林县| 团风县| 封丘县| 蓬安县| 双鸭山市| 平顶山市| 昌邑市| 吴堡县| 越西县| 兰州市| 农安县| 自治县| 西乌珠穆沁旗| 康乐县| 安溪县|