Docs for CRYPT.__init__

[ Python Tutorial ] [ Python Libraries ] [ web2py epydoc ]

Description


<type 'instancemethod'>









important, digest_alg='md5' is not the default hashing algorithm for
web2py. This is only an example of usage of this function.

The actual hash algorithm is determined from the key which is
generated by web2py in tools.py. This defaults to hmac+sha512.


Attributes


CRYPT.__init__.__call__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__call__(...) <==> x(...)

CRYPT.__init__.__class__ <type 'type'> extends (<type 'object'>,) belongs to class <type 'type'>
instancemethod(function, instance, class) Create an instance method object.

CRYPT.__init__.__cmp__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__cmp__(y) <==> cmp(x,y)

CRYPT.__init__.__delattr__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__delattr__('name') <==> del x.name

CRYPT.__init__.__doc__ <type 'str'> belongs to class <type 'str'>
str(object='') -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object.

CRYPT.__init__.__format__ <type 'builtin_function_or_method'> belongs to class <type 'builtin_function_or_method'>
default object formatter

CRYPT.__init__.__func__ <type 'function'> belongs to class <type 'function'>
important, digest_alg='md5' is not the default hashing algorithm for web2py. This is only an example of usage of this function. The actual hash algorithm is determined from the key which is generated by web2py in tools.py. This defaults to hmac+sha512.

CRYPT.__init__.__get__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
descr.__get__(obj[, type]) -> value

CRYPT.__init__.__getattribute__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__getattribute__('name') <==> x.name

CRYPT.__init__.__hash__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__hash__() <==> hash(x)

CRYPT.__init__.__init__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__init__(...) initializes x; see help(type(x)) for signature

CRYPT.__init__.__new__ <type 'builtin_function_or_method'> belongs to class <type 'builtin_function_or_method'>
T.__new__(S, ...) -> a new object with type S, a subtype of T

CRYPT.__init__.__reduce__ <type 'builtin_function_or_method'> belongs to class <type 'builtin_function_or_method'>
helper for pickle

CRYPT.__init__.__reduce_ex__ <type 'builtin_function_or_method'> belongs to class <type 'builtin_function_or_method'>
helper for pickle

CRYPT.__init__.__repr__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__repr__() <==> repr(x)

CRYPT.__init__.__self__ <type 'NoneType'> belongs to class <type 'NoneType'>

CRYPT.__init__.__setattr__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__setattr__('name', value) <==> x.name = value

CRYPT.__init__.__sizeof__ <type 'builtin_function_or_method'> belongs to class <type 'builtin_function_or_method'>
__sizeof__() -> int size of object in memory, in bytes

CRYPT.__init__.__str__ <type 'method-wrapper'> belongs to class <type 'method-wrapper'>
x.__str__() <==> str(x)

CRYPT.__init__.__subclasshook__ <type 'builtin_function_or_method'> belongs to class <type 'builtin_function_or_method'>
Abstract classes can override this to customize issubclass(). This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

CRYPT.__init__.im_class <type 'type'> extends (<type 'object'>,) belongs to class <type 'type'>
Examples: Use as:: INPUT(_type='text', _name='name', requires=CRYPT()) encodes the value on validation with a digest. If no arguments are provided CRYPT uses the MD5 algorithm. If the key argument is provided the HMAC+MD5 algorithm is used. If the digest_alg is specified this is used to replace the MD5 with, for example, SHA512. The digest_alg can be the name of a hashlib algorithm as a string or the algorithm itself. min_length is the minimal password length (default 4) - IS_STRONG for serious security error_message is the message if password is too short Notice that an empty password is accepted but invalid. It will not allow login back. Stores junk as hashed password. Specify an algorithm or by default we will use sha512. Typical available algorithms: md5, sha1, sha224, sha256, sha384, sha512 If salt, it hashes a password with a salt. If salt is True, this method will automatically generate one. Either case it returns an encrypted password string in the following format: <algorithm>$<salt>$<hash> Important: hashed password is returned as a LazyCrypt object and computed only if needed. The LasyCrypt object also knows how to compare itself with an existing salted password Supports standard algorithms >>> for alg in ('md5','sha1','sha256','sha384','sha512'): ... print str(CRYPT(digest_alg=alg,salt=True)('test')[0]) md5$...$... sha1$...$... sha256$...$... sha384$...$... sha512$...$... The syntax is always alg$salt$hash Supports for pbkdf2 >>> alg = 'pbkdf2(1000,20,sha512)' >>> print str(CRYPT(digest_alg=alg,salt=True)('test')[0]) pbkdf2(1000,20,sha512)$...$... An optional hmac_key can be specified and it is used as salt prefix >>> a = str(CRYPT(digest_alg='md5',key='mykey',salt=True)('test')[0]) >>> print a md5$...$... Even if the algorithm changes the hash can still be validated >>> CRYPT(digest_alg='sha1',key='mykey',salt=True)('test')[0] == a True If no salt is specified CRYPT can guess the algorithms from length: >>> a = str(CRYPT(digest_alg='sha1',salt=False)('test')[0]) >>> a 'sha1$$a94a8fe5ccb19ba61c4c0873d391e987982fbbd3' >>> CRYPT(digest_alg='sha1',salt=False)('test')[0] == a True >>> CRYPT(digest_alg='sha1',salt=False)('test')[0] == a[6:] True >>> CRYPT(digest_alg='md5',salt=False)('test')[0] == a True >>> CRYPT(digest_alg='md5',salt=False)('test')[0] == a[6:] True

CRYPT.__init__.im_func <type 'function'> belongs to class <type 'function'>
important, digest_alg='md5' is not the default hashing algorithm for web2py. This is only an example of usage of this function. The actual hash algorithm is determined from the key which is generated by web2py in tools.py. This defaults to hmac+sha512.

CRYPT.__init__.im_self <type 'NoneType'> belongs to class <type 'NoneType'>