note 47189 added to ref.mcrypt
| From: | emaheratnewbaydotcom at osu1 dot php dot net | Date: | Fri, 05 Nov 2004 16:37:22 +0000 |
| Subject: | note 47189 added to ref.mcrypt | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-80152@lists.php.net to get a copy of this message | ||
Just a note about mcrypt<-->java interop (have a php app encrypting a string and a java app
decrypting it)
php mcrypt pads the plaintext with spaces until the plaintext is a multiple of the block size (e.g
16 for most symmetric ciphers). These spaces have to be stripped on when decrypting on the java
side. Seems to be no other way of using a sensible padding (e.g. with PKCS #5) on the mcrypt side.
The following php and java will interop
$cipher = "rijndael-128";
$mode = "cbc";
echo "CIPHER: $cipher | MODE: $mode\n";
// data,key, iv
$data = "blah";
$key = "01234567890abcdef";
$iv = "fedcba9876543210";
// set up and encyrpt
$td = mcrypt_module_open($cipher, "", $mode, $iv);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $data);
echo bin2hex($encrypted_data);
// tear down
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
Java side
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
SecretKeySpec keySpec = new SecretKeySpec("01234567890abcdef".getBytes(),
"AES");
IvParameterSpec ivSpec = new IvParameterSpec("fedcba9876543210".getBytes());
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
byte[] outText = cipher.doFinal(fromHexString(input));
System.out.println(new String(outText).trim());
----
Manual Page -- http://www.php.net/manual/en/ref.mcrypt.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+47189
Delete -- http://master.php.net/manage/user-notes.php?action=delete+47189&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+47189&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+47189&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+47189&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+47189&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+47189&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+47189&report=yes
Search -- http://master.php.net/manage/user-notes.php