Python zfec howto/example

To install

$ pip install zfec

Suppose I have two blocks of data and want a third block as redundancy

>>> zfec.Encoder(2, 3).encode(['ab', 'cd'])
['ab', 'cd', 'en']
>>> zfec.Decoder(2, 3).decode(['ab', 'cd', ], [0, 1])
['ab', 'cd']
# somehow lost the second block, use the third block the recover
>>> zfec.Decoder(2, 3).decode(['ab', 'en', ], [0, 2])
['ab', 'cd']

In the above example, k=2 and m=3

ref: https://pypi.python.org/pypi/zfec

btw Trivial secret sharing

secret = 123
a, b, c = [int((random.random() * 256)) for x in range(3)]
d = map(xor, [secret, a, b, c])

so 4 players has each a share of secret.

This is kinda lame... Shamir's scheme is much better

Comments