我有一个来自java服务的3DES加密串-
30BA1A87B3B08F8A6F69BF0E2EC7539B当我在PHP中应用3DES加密来检查结果时,我得到了一个非常不同的字符串,它是-
ªã;Îù1ù@yq—ÿÃÓ"Õó[ûñüM“ƒº5fá$!Ø5JºÝ7我使用一个开源的PHP库进行加密,它是来自http://sourceforge.net/projects/phpseclib/的Crypt_TripleDES。
谁能帮助我,了解哪里出了问题,哪里出了问题?
请问我是否遗漏了什么。
谢谢
PHP代码-
require_once 'Crypt/TripleDES.php';
$tdes = new Crypt_TripleDES();
$tdes->setKey($key);
$enc_text = $tdes->encrypt($text);
echo 'Encrypted text - '.($enc_text).'<br />';发布于 2012-07-26 11:51:57
它最像是您显示信息的方式。
在您的第一行中,您似乎将字符串输出为十六进制。也就是说,数据的每个字节被转换为两个十六进制字符。
在第二行中,看起来您可能只是试图将原始二进制文件转储到输出。也就是说,每个字节都被解释为一个ASCII字符,这就解释了为什么它看起来像地狱。
我们可以获得有关您的Java输出的更多信息吗?你是怎么得到它的?
在查看了这个库之后,似乎是的,它返回了原始的二进制字符串。要将其转换为十六进制,只需调用内置的bin2hex()函数:
require_once 'Crypt/TripleDES.php';
$tdes = new Crypt_TripleDES();
$tdes->setKey($key);
$enc_text = $tdes->encrypt($text);
echo 'Encrypted text - ' . bin2hex($enc_text) . '<br />';https://stackoverflow.com/questions/11662052
复制相似问题