この暗号化コードを Python コードに変換するには、Java の知識が不十分なため苦労しています。この 2 つはまったく同じ結果になるはずです。助けていただければ幸いです。
Java 関数
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.security.Key;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
String s = "testings";
Cipher cipher = Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
Key key = new SecretKeySpec("6#26FRL$ZWD".getBytes(), "Blowfish");
cipher.init(1, key);
byte[] enc_bytes = cipher.doFinal(s.getBytes());
System.out.println(enc_bytes);
}
}
Python の同等物
def PKCS5Padding(string):
byteNum = len(string)
packingLength = 8 - byteNum % 8
if packingLength == 8:
return string
else:
appendage = chr(packingLength) * packingLength
return string + appendage
def PandoraEncrypt(string):
from Crypto.Cipher import Blowfish
key = b'6#26FRL$ZWD'
c1 = Blowfish.new(key, Blowfish.MODE_ECB)
packedString = PKCS5Padding(string)
return c1.encrypt(packedString)
結果
Java 関数: "??¾ô"
Python 関数: "Ë4A-¾`*ã"