26 lines
384 B
Python
26 lines
384 B
Python
#!/usr/bin/python3
|
|
|
|
import random
|
|
from math import gcd
|
|
|
|
def encrypt(dt):
|
|
mod = 256
|
|
while True:
|
|
a = random.randint(1,mod)
|
|
if gcd(a, mod) == 1: break
|
|
b = random.randint(1,mod)
|
|
|
|
res = b''
|
|
for byte in dt:
|
|
enc = (a*byte + b) % mod
|
|
res += bytes([enc])
|
|
return res
|
|
|
|
dt = open('letter.pdf', 'rb').read()
|
|
|
|
res = encrypt(dt)
|
|
|
|
f = open('encrypted.bin', 'wb')
|
|
f.write(res)
|
|
f.close()
|