我正在使用Python 3.7。我的目标是创建一个服务器,它将用一个密钥加密一个随机字符串
但是,我编写的代码没有显示任何结果。我的意思是,代码正在被“避免”,我看不到代码的任何结果。这是我编写的代码(服务器和客户端):
服务器:
import socket
import Crypto
import Cryptodome
HOST = '127.0.0.1' # Standard loopback interface address (localhost)
PORT = 8080 # Port to listen on (non-privileged ports are > 1023)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
print ('Socket binded to port 8080')
s.listen(0)
print ('socket is listening')
while True:
c, addr = s.accept()
print ('Got connection from ', addr)
string = str(c.recv(1024))
print(string)
if string == "b'Register'" :
import random
import string
def randomString(stringLength=10):
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(stringLength))
print("Random String is ", randomString())
from Crypto.Cipher import AES
from Crypto.Cipher import AES
def do_encrypt(message):
obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
ciphertext = obj.encrypt(message)
return ciphertext
客户:
import socket
HOST = '127.0.0.1' # The server's hostname or IP address
PORT = 8080 # The port used by the server
import Crypto
import sys
sys.modules['Crypto'] = Crypto
name = '' # Sign in to the server!!
while name != 'Register':
print('Would you like to Register/Login?')
name = input()
s = socket.socket()
port = 8080
s.connect(('localhost', port))
z = 'Register'
s.sendall(z.encode())
s.close()
name = '' # Sign in to the server!!
print ("Register request sent")
from Crypto.Cipher import AES
def do_decrypt(ciphertext):
obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
message = obj2.decrypt(ciphertext)
return message
from Crypto.PublicKey import RSA
key = RSA.generate(2048) # Private key creation
private_key = key.export_key()
file_out = open("private.txt", "wb")
file_out.write(private_key)
public_key = key.publickey().export_key() # Public key creation
file_out = open("receiver.txt", "wb")
file_out.write(public_key)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: # sending the Public key to the server.
s.connect((HOST, PORT))
s.sendall(public_key)
data = s.recv(1024)
s.close() # Close the socket when done
print('Received', repr(data))
AES加密代码的来源:在Python中使用套接字发送加密字符串
您不会得到任何与AES加密代码相关的东西,因为您没有调用该函数。
B'x\x85\x92\x9D\xE6\x0BJ\xFE\x9B(\x10G\x8E\x05\xC5\xF4\xCDA9\xC18\xB8\xF9VBMK\x16\xF8\xA3\xB6' 我试着用 和
使用lib中的模块在python中解密和加密字符串。最简单的方法 现在我想解密我之前输入的字符串。。
问题内容: 我在PHP中有一个函数,可按如下所示加密文本: 如何在Python中解密这些值? 问题答案: 要解密这种加密形式,您将需要获得Rijndael版本。在这里可以找到一个。然后,您将需要模拟PHP Mcrypt模块中使用的键和文本填充。它们增加了填充文本和键的正确大小。他们使用的是256位块大小,并且您提供的密钥使用的密钥大小为128(如果您提供更大的密钥,则密钥大小可能会增加)。不幸的是
问题内容: 我正在尝试加密数据库中的一些文本,以便在程序启动期间进行加载和解密。 我尝试了几种方法,包括第三方库https://github.com/richard-lyman/lithcrypt无济于事。使用以下方法对8/10项进行加密/解密,但是似乎在加密/解密中的某些时候留下了一些填充残留。就目前而言,我的代码是这样的: 有人告诉我,我可能需要填充字符串,但是我不得不填充流密码似乎很奇怪。
我想使用chacha20解密和加密字符串 BouncyCastleProvider正在使用chacha20技术。所以我包括了罐子。并尝试了代码,但无法工作。 pbe.java
我的代码如下: 有人来帮我吗