在破解某APP过程中,发现有DES3的加密,由于需要在Python代码中抓取,所以需要转换为Python代码,Java版本的加密代码为:
public class DES3Utils {
public static String encryptDES(String str) {
try {
SecretKey generateSecret = SecretKeyFactory.getInstance("desede").generateSecret(new DESedeKeySpec("加密key,修改为自己的就好".getBytes()));
// CBC的模式,填充为PKCS5Padding
Cipher instance = Cipher.getInstance("desede/CBC/PKCS5Padding");
instance.init(1, generateSecret, new IvParameterSpec("Iv也是可以填充为自己的".getBytes()));
// str就是你要加密的内容了,通过方法传进来
return Base64.encode(instance.doFinal(str.getBytes("utf-8")));
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
转换Python版本代码为:
import pyDes
import base64
keys = '加密key,修改为自己的就好'
k = pyDes.triple_des(keys, pyDes.CBC, "IV值,修改为自己的", pad=None, padmode=pyDes.PAD_PKCS5)
d = k.encrypt('要加密的内容')
print(base64.b64encode(d))
print(base64.b64decode(base64.b64encode(d)).hex().upper())
e = k.decrypt(d)
print(e)