|
|
@ -6,11 +6,12 @@ import os
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from entity.Letter import Letter
|
|
|
|
from entity.Letter import Letter
|
|
|
|
|
|
|
|
from itsdangerous import base64_encode
|
|
|
|
from tool import PriKeyHelper
|
|
|
|
from tool import PriKeyHelper
|
|
|
|
from tool.PriKeyHelper import getUserKey
|
|
|
|
from tool.PriKeyHelper import getUserKey
|
|
|
|
from tool.asymmetric import RSA
|
|
|
|
from tool.asymmetric import RSA
|
|
|
|
from tool.symmetric.AES import AESUtils
|
|
|
|
from tool.symmetric.AES import AESUtils
|
|
|
|
from tool.symmetric.SM4 import encrypt_ecb, encrypt_cbc_with_iv
|
|
|
|
from tool.symmetric.SM4 import encrypt_ecb, decrypt_cbc_with_iv, encrypt_cbc_with_iv
|
|
|
|
from Crypto.Random import get_random_bytes
|
|
|
|
from Crypto.Random import get_random_bytes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -106,13 +107,13 @@ def selectSymEncryptionChoice():
|
|
|
|
# 选择加密算法的模式
|
|
|
|
# 选择加密算法的模式
|
|
|
|
while True:
|
|
|
|
while True:
|
|
|
|
if encryWay == "aes":
|
|
|
|
if encryWay == "aes":
|
|
|
|
encryMode = input("选择加密算法模式 (ecb/cbc/cfb/ofb): ").strip().lower()
|
|
|
|
encryMode = input("选择加密算法模式 (ecb/cbc): ").strip().lower()
|
|
|
|
if encryMode in ["ecb", "cbc", "cfb", "ofb"]:
|
|
|
|
if encryMode in ["ecb", "cbc"]:
|
|
|
|
letterMode = encryMode
|
|
|
|
letterMode = encryMode
|
|
|
|
print(f"已选择 '{encryMode}' 加密模式.")
|
|
|
|
print(f"已选择 '{encryMode}' 加密模式.")
|
|
|
|
break # 输入有效后退出循环
|
|
|
|
break # 输入有效后退出循环
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
print("非法输入,请输入 ecb/cbc/cfb/ofb")
|
|
|
|
print("非法输入,请输入 ecb/cbc")
|
|
|
|
|
|
|
|
|
|
|
|
elif encryWay == "sm4":
|
|
|
|
elif encryWay == "sm4":
|
|
|
|
encryMode = input("选择加密模式 (ecb/cbc): ").strip().lower()
|
|
|
|
encryMode = input("选择加密模式 (ecb/cbc): ").strip().lower()
|
|
|
@ -175,7 +176,11 @@ def getEncryptKey():
|
|
|
|
# 获得接收方的公钥
|
|
|
|
# 获得接收方的公钥
|
|
|
|
def getRecvPubKey():
|
|
|
|
def getRecvPubKey():
|
|
|
|
# recPubKey = input("plz input Receiver's Public Key: ")
|
|
|
|
# recPubKey = input("plz input Receiver's Public Key: ")
|
|
|
|
recPubKey = getUserKey()[1]
|
|
|
|
# 在某某地方获得对方的公钥,然后保存到某个地方,输入路径uoqu
|
|
|
|
|
|
|
|
recPubKeyPath = input("请输入接受方的公钥文件路径:")
|
|
|
|
|
|
|
|
with open(recPubKeyPath, "rb") as f:
|
|
|
|
|
|
|
|
data = f.read()
|
|
|
|
|
|
|
|
recPubKey = base64.b64encode(data).decode('utf-8')
|
|
|
|
return recPubKey
|
|
|
|
return recPubKey
|
|
|
|
|
|
|
|
|
|
|
|
# 获得发送方的公钥
|
|
|
|
# 获得发送方的公钥
|
|
|
|