예제 #1
0
from LSBSteg import LSBSteg
import cv2
import matplotlib.pyplot as plt

#encoding
steg = LSBSteg(cv2.imread("carrier.png"))
new_im = steg.encode_image(cv2.imread("lena.png"))
cv2.imwrite("new_image.png", new_im)

#decoding
steg = LSBSteg(cv2.imread("new_image.png"))
orig_im = steg.decode_image()
cv2.imwrite("recovered.png", orig_im)
예제 #2
0
def talk(s):
    while True:
        try:
            pan=int(input('1:rsa 2:LSB 3:不经意 4:零知识 5:签名 6:image rsa 7:image lsb'))
            
            info=input('>>>')##
        except Exception(e):
            print('can\'t input')
            exit()
        try:
            
            global bob_pub
            global bob_priv
            global my_pub
            global my_priv
            if pan==1:
                #global bob_pub
                #global bob_priv
                crypto = rsa.encrypt(info.encode('utf8'),bob_pub)
                #secret = lsb.hide("lena.png",crypto)
                #s.send(pickle.dumps((bob_pub,bob_priv,crypto)))
                s.send(pickle.dumps((1,(bob_pub,bob_priv,crypto))))
                #s.send(info.encode('utf-8'))
            elif pan==2:
                secret=lsb.hide("lena.png",info)
                # secret = lsb.hide("lena.png", info)
                # secret.save("lena_hide.png")
                # s.send(pickle.dumps((2,"")))
                s.send(pickle.dumps((2,secret)))
            elif pan==3:#不经意

                crypto = rsa.encrypt(info.encode('utf8'),bob_pub)
                s.send(pickle.dumps((3,(bob_pub,bob_priv,crypto))))
            elif pan==4:#零知识
                s.send(pickle.dumps((4,info.encode('utf8'))))    
            elif pan==5:#签名
                #global bob_pub
                #global bob_priv
                crypto = rsa.encrypt(info.encode('utf8'),my_priv)
                #secret = lsb.hide("lena.png",crypto)
                #s.send(pickle.dumps((bob_pub,bob_priv,crypto)))
                s.send(pickle.dumps((5,(my_priv,my_pub,crypto))))
                #s.send(info.encode('utf-8'))
            elif pan==6:
                aes_key = rsa.randnum.read_random_bits(128)
                cipher = AES.new(aes_key, AES.MODE_ECB)
                cipher_data = cipher.encrypt(pad(pickle.dumps(cv2.imread(info)), AES.block_size))
                encrypted_aes_key = rsa.encrypt(aes_key, bob_pub)
                s.send(pickle.dumps((6,(bob_pub,bob_priv,cipher_data,encrypted_aes_key))))
            elif pan==7:
                steg = LSBSteg(cv2.imread("carrier.png"))
                new_im = steg.encode_image(cv2.imread(info))
                s.send(pickle.dumps((7,new_im)))
            
            elif pan==8:#不经意
                aes_key = rsa.randnum.read_random_bits(128)
                cipher = AES.new(aes_key, AES.MODE_ECB)
                cipher_data = cipher.encrypt(pad(pickle.dumps(cv2.imread(info)), AES.block_size))
                encrypted_aes_key = rsa.encrypt(aes_key, bob_pub)
                s.send(pickle.dumps((8,(bob_pub,bob_priv,cipher_data,encrypted_aes_key))))

            elif pan==9:#零知识
                s.send(pickle.dumps((9,info.encode('utf8'))))
            elif pan==10:#签名
                aes_key = rsa.randnum.read_random_bits(128)
                cipher = AES.new(aes_key, AES.MODE_ECB)
                cipher_data = cipher.encrypt(pad(pickle.dumps(cv2.imread(info)), AES.block_size))
                encrypted_aes_key = rsa.encrypt(aes_key, my_priv)
                s.send(pickle.dumps((10,(my_priv,my_pub,cipher_data,encrypted_aes_key))))
        except Exception(e):
            print(e)
            exit()