【发布时间】:2012-03-16 18:29:06
【问题描述】:
我有这段 Java 代码,它使用 AES 128 位将源字符串加密为 Base64 加密值。但是我没有找到产生相同结果的类似 PHP 函数。任何帮助将不胜感激
String key = "1234567890123456";
String source = "The quick brown fox jumped over the lazy dog";
byte[] raw = key.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
// Instantiate the cipher
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(source.getBytes());
System.out.println(new String(Base64.encodeBase64(encrypted)));
【问题讨论】:
-
bse64decode()并查看手册php.net/ref.mcrypt -
您的术语不正确。 “使用 AES 128 位的 Base64 加密值”听起来不准确。 “使用 AES-128 编码 使用 Base64 的值 加密”是正确的说法。
-
感谢您的评论。我用 mcrypt 和 base64_encode 尝试了一些 php 代码,但它们没有产生相同的结果
-
您将需要使用 ECB 模式加密(不安全),这似乎转换为
mcrypt_generic。此外,您将需要 PKCS7 填充。但是,这在 mcrypt 中不可用,请参阅 stackoverflow。
标签: java php encryption aes