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)
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()