首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP如何处理三叉戟加密的32字节密钥?

PHP如何处理三叉戟加密的32字节密钥?
EN

Stack Overflow用户
提问于 2014-02-11 16:39:03
回答 1查看 1.5K关注 0票数 2

很抱歉,所有在加密领域工作的新手都在谷歌上搜索了好几天,最后还是直接问了。

我需要使用PHP加密和解密由Java TripleDES "DESede/ECB/NoPadding“函数读取的数据。

在Java中有一个双长的32个字符键。"F4D5CBDF57FEEDCFA41FD6AFE7BCDFEA“,它被转换成字节,并提供一个加密的结果,没有任何问题。(我没有密码。)

在PHP中,当通过mcrypt对三叉戟( ecb函数调用)尝试使用相同的密钥时,会出现密钥长度错误,因为系统需要最多24个字符。

我需要对密钥做些什么,这样PHP才能产生与Java相同的加密结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-12 01:06:34

正如NullUserException所假设的:在用于三重DES密码之前,请将密钥从十六进制转换为二进制。您的Java代码必须做同样的事情;在Java中,三重DES键必须有24个字节或16个字节(16字节仅支持Java的后期版本,之前您必须将前8个字节复制到末尾以创建"ABA“DES键,从而将其转换为24个字节)。

三元DES不支持32个字节键。但是,如果您使用的是PHP的可怕的mcrypt库,则可以将密钥切割到最大的可用密钥大小。因此,与其出现快速失败的情况,PHP更愿意让用户沮丧地拔出自己的头发。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21707697

复制
相关文章

相似问题

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