联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

linux中解析.htpasswd文件的PHP类

点击数:11402015-07-17 09:51:04 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:linux中解析.htpasswd文件的PHP类有需要的朋友可参考一下,介绍一个使用方法,实例代码如下: $passwdHandler = new Htpasswd( /home/myuser/.htpasswd ); //Addauserwithnameuser1andpasswordIprefertousepassphraseratherthan

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; //开源代码vcphp.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. }
  70.  
【责任编辑:(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程