Index: third_party/pyftpdlib/demo/md5_ftpd.py |
=================================================================== |
--- third_party/pyftpdlib/demo/md5_ftpd.py (revision 0) |
+++ third_party/pyftpdlib/demo/md5_ftpd.py (revision 0) |
@@ -0,0 +1,29 @@ |
+#!/usr/bin/env python |
+# md5_ftpd.py |
+ |
+"""A basic ftpd storing passwords as hash digests (platform independent). |
+""" |
+ |
+import md5 |
+import os |
+ |
+from pyftpdlib import ftpserver |
+ |
+ |
+class DummyMD5Authorizer(ftpserver.DummyAuthorizer): |
+ |
+ def validate_authentication(self, username, password): |
+ hash = md5.new(password).hexdigest() |
+ return self.user_table[username]['pwd'] == hash |
+ |
+if __name__ == "__main__": |
+ # get a hash digest from a clear-text password |
+ hash = md5.new('12345').hexdigest() |
+ authorizer = DummyMD5Authorizer() |
+ authorizer.add_user('user', hash, os.getcwd(), perm='elradfmw') |
+ authorizer.add_anonymous(os.getcwd()) |
+ ftp_handler = ftpserver.FTPHandler |
+ ftp_handler.authorizer = authorizer |
+ address = ('', 21) |
+ ftpd = ftpserver.FTPServer(address, ftp_handler) |
+ ftpd.serve_forever() |