initial commit
This commit is contained in:
commit
7c25607f33
4 changed files with 47 additions and 0 deletions
6
README.md
Normal file
6
README.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
### Generating a file
|
||||
|
||||
1. `head -c 8 </dev/zero >myfile`
|
||||
2. `head -c 16M </dev/random >>myfile`
|
||||
|
||||
You can repeat the second command to grow the file
|
25
main.py
Normal file
25
main.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
from dataclasses import dataclass
|
||||
from io import BufferedRandom
|
||||
|
||||
@dataclass
|
||||
class Shard:
|
||||
size: int
|
||||
file: BufferedRandom
|
||||
|
||||
@staticmethod
|
||||
def load_shard(filename: str) -> 'Shard':
|
||||
file = open(filename, 'rb+')
|
||||
size = int.from_bytes(file.read(8), 'big')
|
||||
|
||||
return Shard(size, file)
|
||||
|
||||
@dataclass
|
||||
class Entry:
|
||||
shard: Shard
|
||||
|
||||
content: bytearray
|
||||
|
||||
|
||||
|
||||
shart = Shard.load_shard('myfile')
|
||||
print(shart.size)
|
BIN
myfile
Normal file
BIN
myfile
Normal file
Binary file not shown.
16
notes.txt
Normal file
16
notes.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
the idea:
|
||||
there's one big file (diary)
|
||||
its size is set on creation and constant
|
||||
its filled with random data
|
||||
the file begins with a long which is total length of the diary, encrypt
|
||||
inside it there are entries:
|
||||
- timestamp
|
||||
- start index of previous entry (encrypted of course)
|
||||
- length of data
|
||||
- data
|
||||
you can't edit data if there's a newer entry
|
||||
each entry is encrypted
|
||||
|
||||
there's also an index file:
|
||||
- total length of diary
|
||||
-
|
Loading…
Reference in a new issue