1 |
NAME |
2 |
Digest::Hashcash - generate Hashcashes (http://www.hashcash.org) |
3 |
|
4 |
SYNOPSIS |
5 |
use Digest::Hashcash; |
6 |
|
7 |
DESCRIPTION |
8 |
This module implements the hashcash hash (or digest, although it's not |
9 |
clearly a digest). For all your information needs please visit |
10 |
http://www.hashcash.org. |
11 |
|
12 |
One thing to note about this module is that it requires ISO C99 support, |
13 |
both in your compiler and your standard library. If you don't have a |
14 |
compiler that supports ISO C, get gcc at http://gcc.gnu.org/ :) |
15 |
|
16 |
$cipher = new [param => value...] |
17 |
|
18 |
size => 20 + some |
19 |
The number of collisions, in bits. Every bit increases the time |
20 |
to create the token (and thus the cash) by two. |
21 |
|
22 |
uid => "" |
23 |
A string used to make the token more unique (e.g. the senders |
24 |
address) and reduce token collisions. The string must only |
25 |
contain characters valid for the trial part of the token, e.g. |
26 |
uuencoded, base64 or e-mail-address-parts are useful here. |
27 |
|
28 |
extrarand => 0 |
29 |
The extra bytes of randomness to add to the token in addition to |
30 |
the standard amount. Each byte adds a little bit over 6 bit of |
31 |
randomness to the token. |
32 |
|
33 |
The standard amount of randomness is 8 (> 51 bits of |
34 |
randomness). |
35 |
|
36 |
timestamp => 0 |
37 |
The timestamp to use. A value of 0 (the default) means to use |
38 |
the current time. |
39 |
|
40 |
$token = $cipher->hash($data [, param => value...]) |
41 |
Creates and returns a new token. This can take some time. |
42 |
|
43 |
Any additional parameters are interpreted the same way as arguments |
44 |
to "new". |
45 |
|
46 |
$prefix = $cipher->verify($token [, param => value...])) |
47 |
Checks the given token and returns true if the token has the minimum |
48 |
number of prefix bits, or false otherwise. The value returned is |
49 |
actually the number of collisions, so to find the number of |
50 |
collisions bits specify "collisions => 0". |
51 |
|
52 |
Any additional parameters are interpreted the same way as arguments |
53 |
to "new". |
54 |
|
55 |
$resource = $cipher->resource($token) |
56 |
Returns the resource part, or "undef". |
57 |
|
58 |
$tstamp = $ciper->timestamp($token) |
59 |
Returns the timestamp part (in the same format as perl's "time"), or |
60 |
"undef". |
61 |
|
62 |
SEE ALSO |
63 |
<http://www.hashcash.org>. |
64 |
|
65 |
BUGS |
66 |
* There is a y2k+100 problem, as I always assume the same as Time::Local. |
67 |
This is a problem with the hashcash specification, which specifies |
68 |
yeras as 2 digits :( |
69 |
|
70 |
AUTHOR |
71 |
Marc Lehmann <pcg@goof.com> |
72 |
http://home.schmorp.de |
73 |
|