从java到php的解密方法
我在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
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”)根据默认的安全提供程序,code>可能会产生不同的密码。它很可能默认为
Cipher.getInstance(“AES/ECB/PKCS5Padding”)代码>,但这并不一定是真的。永远不要使用。它是确定性的,因此在语义上不安全。您至少应该使用随机模式,如或。最好是对密文进行身份验证,这样就不可能进行类似的攻击。这可以通过像GCM或EAX这样的认证模式来完成,也可以通过一个方案来完成。不要!aesencryption.net上的代码非常不安全。请为我的问题提出一个解决方案,而不仅仅是批评。