История изменений
Исправление peregrine, (текущая версия) :
Ну вот тебе пример, ТС, только в реальной системе так не делай, это не криптостойкий генератор шума, да и ключ - говно.
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')
Исходная версия peregrine, :
Ну вот тебе пример, ТС, только в реальной системе так не делай, это не криптостойкий генератор шума, да и ключ - говно.
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')