暗号化と復号化の両方を行う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)