因此,对于特定的项目,我需要能够以与在另一个PHP应用程序中加密/解密相同的方式加密和解密字符串。我的应用程序是一个Grails应用程序,所以我将用Java编写代码。该字符串将被加密的方式/解密在PHP端为(示例代码,不一定功能):字符串加密PHP/Java
<?
$input="textToBeEncrypted";
function encrypt($data, $key)
{
$cipher_alg = MCRYPT_DES;
$mode = MCRYPT_MODE_CBC;
return @mcrypt_encrypt($cipher_alg, $key, $data, $mode);
}
function decrypt($encrypted, $key)
{
$cipher_alg = MCRYPT_DES;
$mode = MCRYPT_MODE_CBC;
return @mcrypt_decrypt($cipher_alg, $key, $encrypted, $mode);
}
$key ="testKey";
$data=$input;
$result = decrypt($data, $key);
echo ">>" . $result . "<br>\n";
?>
所以,我希望能够运用相同的加密/解密在Java中(或Groovy )。我找到了这个示例代码https://github.com/stevenholder/PHP-Java-AES-Encrypt/blob/master/security.java,我明白如果我设法在Java中找到算法和模式的名称,它应该可以工作。除非我错过了一些东西......我导航到Java标准名称页面加密算法,http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html,但我找不到我在PHP代码中的确切等价物。有任何想法吗?有没有人需要做类似的事情?
感谢,
伊拿克里斯
您可能会使用OpenSSL函数。这些可能会更便携。 http://php.net/manual/en/function.openssl-encrypt.php –
@ConnorPeet注意,默认情况下,OpenSSL使用它自己的密钥派生函数('EVP_BytesToKey')。这不是在默认的Java库中可以找到的。 –
谢谢你的评论,但是,我很可能没有太多的控制PHP集成上发生的事情。我的目标是尝试在Java中实现PHP方面。不过我会向他们提及OpenSSL的功能。 – Iraklis