如何在AES/ECB/PKCS5P中用python解密字符串(由java加密)?
我正在做一个django项目,其中一部分涉及解密json播放负载,其中的数据由ASE/ECB/PKCS5P中的java加密。因此,我尝试获取加密字符串并将其放入python脚本中,以查看是否有可能将其解密回原始字符串。下面是java中en/decryption的示例 这是我的python版本:如何在AES/ECB/PKCS5P中用python解密字符串(由java加密)?,java,python,cryptography,aes,Java,Python,Cryptography,Aes,我正在做一个django项目,其中一部分涉及解密json播放负载,其中的数据由ASE/ECB/PKCS5P中的java加密。因此,我尝试获取加密字符串并将其放入python脚本中,以查看是否有可能将其解密回原始字符串。下面是java中en/decryption的示例 这是我的python版本: class AESCipher: def __init__(self): self.key = '9sdf3jkkjsdfUUJH' def encrypt(self,
class AESCipher:
def __init__(self):
self.key = '9sdf3jkkjsdfUUJH'
def encrypt(self, raw):
raw = pad(raw)
cipher = AES.new(self.key, AES.MODE_ECB)
enc_str = cipher.encrypt(raw)
str_64 = base64.b64encode(enc_str)
return(str_64.decode())
def decrypt(self, enc):
cipher = AES.new(self.key, AES.MODE_ECB)
#enc += (len(enc) % 4) * '='
decrypt_bytes = base64.b64decode(enc)
dec = cipher.decrypt(decrypt_bytes)
try:
result = \
re.compile('[\\x00-\\x08\\x0c\\x0e-\\x1f\\n\r\t]').sub('',\
dec.decode())
except Exception:
result = 'fail'
return(result)
但是,它只能进行普通的en/解密,而不能对java进行解密。我想这是因为java中的getSecretKey()方法,但我不擅长java,也不知道它是什么。我想问一下,是否可以解密java加密的字符串?谢谢请添加问题中的错误。您确定使用了正确的密钥进行解密吗?@Roshith是的,我用java和python编写了basis AES en/解密脚本。两者都返回相同的结果。但是,如果我使用GitHub链接中的脚本以相同的密钥对相同的字符串进行en/解密,则返回值会发生变化。可能是因为getSecretKey(key)以未知的方式更改了密钥。如何用Python编写相同的getSecretKey(key)?我对谷歌做了很多研究,但似乎没有人尝试这么做。请添加问题中的错误。你确定你使用了正确的密钥进行解密吗?@Roshith是的,我用java和python编写了basis AES en/解密脚本。两者都返回相同的结果。但是,如果我使用GitHub链接中的脚本以相同的密钥对相同的字符串进行en/解密,则返回值会发生变化。可能是因为getSecretKey(key)以未知的方式更改了密钥。如何用Python编写相同的getSecretKey(key)?我对谷歌做了很多研究,但似乎没有人尝试这么做。