История изменений
Исправление Andreezy, (текущая версия) :
очевидно же, что он пишет малварь, которая зашифрует юзеру файлы и будет просить бабос за расшифровку:
Ну приплыли. Малварь на питоне
Вот то что я хотел уже написали. Я просто забыл про random.seed() и пытался что-то накостылить сам. А так решение то что нужно
from PIL import Image
import numpy
import random
image = numpy.asarray(Image.open('ava.png'))
noise = numpy.copy(image)
random.seed(100500) # псевдоключ
with numpy.nditer(noise, op_flags=['readwrite']) as it:
for x in it:
x[...] = random.randint(0, 255)
noise_image = Image.fromarray(noise)
noise_image.save('noise.png')
pseudo_crypt = numpy.bitwise_xor(image, noise)
pseudo_crypt_image = Image.fromarray(pseudo_crypt)
pseudo_crypt_image.save('result.png')
decrypted = pseudo_crypt = numpy.bitwise_xor(pseudo_crypt, noise)
decrypted_image = Image.fromarray(decrypted)
decrypted_image.save('decrypted.png')
Но минус только в том, что не поддерживает JPEG. Отсюда и продолжение
Исходная версия Andreezy, :
очевидно же, что он пишет малварь, которая зашифрует юзеру файлы и будет просить бабос за расшифровку:
Ну приплыли. Малварь на питоне
Вот то что я хотел уже написали. Я просто забыл про random.seed() и пытался что-то накостылить сам. А так решение то что нужно
from PIL import Image
import numpy
import random
image = numpy.asarray(Image.open('ava.png'))
noise = numpy.copy(image)
random.seed(100500) # псевдоключ
with numpy.nditer(noise, op_flags=['readwrite']) as it:
for x in it:
x[...] = random.randint(0, 255)
noise_image = Image.fromarray(noise)
noise_image.save('noise.png')
pseudo_crypt = numpy.bitwise_xor(image, noise)
pseudo_crypt_image = Image.fromarray(pseudo_crypt)
pseudo_crypt_image.save('result.png')
decrypted = pseudo_crypt = numpy.bitwise_xor(pseudo_crypt, noise)
decrypted_image = Image.fromarray(decrypted)
decrypted_image.save('decrypted.png')