首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的3DES与Java中的不同

PHP中的3DES与Java中的不同
EN

Stack Overflow用户
提问于 2012-07-26 11:45:21
回答 1查看 1K关注 0票数 0

我有一个来自java服务的3DES加密串-

代码语言:javascript
复制
30BA1A87B3B08F8A6F69BF0E2EC7539B

当我在PHP中应用3DES加密来检查结果时,我得到了一个非常不同的字符串,它是-

代码语言:javascript
复制
ªã;Îù1ù@yq—ÿÃÓ"Õó[ûñüM“ƒº5fá$!Ø5JºÝ7

我使用一个开源的PHP库进行加密,它是来自http://sourceforge.net/projects/phpseclib/的Crypt_TripleDES。

谁能帮助我,了解哪里出了问题,哪里出了问题?

请问我是否遗漏了什么。

谢谢

PHP代码-

代码语言:javascript
复制
require_once 'Crypt/TripleDES.php';
$tdes = new Crypt_TripleDES();
$tdes->setKey($key);
$enc_text = $tdes->encrypt($text);
echo 'Encrypted text - '.($enc_text).'<br />';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 11:51:57

它最像是您显示信息的方式。

在您的第一行中,您似乎将字符串输出为十六进制。也就是说,数据的每个字节被转换为两个十六进制字符。

在第二行中,看起来您可能只是试图将原始二进制文件转储到输出。也就是说,每个字节都被解释为一个ASCII字符,这就解释了为什么它看起来像地狱。

我们可以获得有关您的Java输出的更多信息吗?你是怎么得到它的?

在查看了这个库之后,似乎是的,它返回了原始的二进制字符串。要将其转换为十六进制,只需调用内置的bin2hex()函数:

代码语言:javascript
复制
require_once 'Crypt/TripleDES.php';
$tdes = new Crypt_TripleDES();
$tdes->setKey($key);
$enc_text = $tdes->encrypt($text);
echo 'Encrypted text - ' . bin2hex($enc_text) . '<br />';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11662052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档