从java到php的解密方法

从java到php的解密方法,java,php,encryption,aes,Java,Php,Encryption,Aes,我在java中有这个方法,我想用php重写它 public static final byte[] keyValue = new byte[] { 'T', 'h', 'e', 'B', 'e', 's', 't', 'S', 'e', 'c', 'r', 'e', 't', 'K', 'e', 'y' }; public final static String ALGO = "AES"; public static String Dcrypt(String encrypted

我在java中有这个方法,我想用php重写它

public static final byte[] keyValue = new byte[] { 'T', 'h', 'e', 'B', 'e',
        's', 't', 'S', 'e', 'c', 'r', 'e', 't', 'K', 'e', 'y' };
public final static String ALGO = "AES";

public static String Dcrypt(String encryptedData) {
    Key key = new SecretKeySpec(keyValue, ALGO);
    // Key key = generateKey();
    try {
        Cipher c = Cipher.getInstance(ALGO);
        c.init(Cipher.DECRYPT_MODE, key);
        byte[] decordedValue = Base64.decodeBase64(encryptedData);
        byte[] decValue = c.doFinal(decordedValue);
        decryptedValue = new String(decValue);
    } catch (Exception e) {
    }
    return decryptedValue;
}
我应该在php中使用什么方法来实现这一点

一些资料来源:


解密后的密码是:password

我最终使用了

更改inputkey和blocksize以满足您的需要


你能分享一下你的尝试吗?这是我第一次尝试的链接。请编辑您的原始帖子并将您的代码粘贴到那里,以便为将来的so访问者保留。一般建议:始终使用完全限定的密码字符串<代码>Cipher.getInstance(“AES”)可能会产生不同的密码。它很可能默认为
Cipher.getInstance(“AES/ECB/PKCS5Padding”),但这并不一定是真的。永远不要使用。它是确定性的,因此在语义上不安全。您至少应该使用随机模式,如或。最好是对密文进行身份验证,这样就不可能进行类似的攻击。这可以通过像GCM或EAX这样的认证模式来完成,也可以通过一个方案来完成。不要!aesencryption.net上的代码非常不安全。请为我的问题提出一个解决方案,而不仅仅是批评。