2

我有一个同时进行加密和解密的 DLL,但是在客户端站点上,当字符串被加密然后发送到另一台机器以通过 Web 服务解密时,解密失败。

目前我已经测试过目标机器上的 DLL 可以很好地加密和解密字符串。我想做的是从两台机器(不同版本)中获取 DLL,将它们加载到 IronPython 脚本中,让一个 DLL 加密,另一个 DLL 解密。我知道我可以将它们都加载到 clr.References 中,因为它们因版本而异,但是在那之后我如何区分它们呢?

这是我现在使用单个 DLL 的内容:

from Some.Dll import SecurityUtils
from System.Text.Encoding import UTF8

import clr


class Codec:
def __init__(self, publicKey):
    self.decryptedBytes = None
    self.encryptedString = None
    self.publicKey = publicKey

def encrypt(self, text):
    #dir = os.path.dirname(__file__);
    #dir = os.path.join(dir, '..');
    #dir = os.path.join(dir, 'oldsystem');

    #dir = sys.path.append(dir)
    #clr.AddReference(r'Some.Dll')

    textBytes = UTF8.GetBytes(text)
    self.encryptedString = SecurityUtils.Encrypt_RSA(textBytes, self.publicKey)

def decrypt(self):
    self.decryptedBytes = SecurityUtils.Decrypt_RSA(self.encryptedString)

def getDecryptedString(self):
    return UTF8.GetString(self.decryptedBytes)
4

0 回答 0