什么加密算法会得到这样的密文?

 我来答
求注册1338a8adca
2017-12-24 · TA获得超过299个赞
知道答主
回答量:323
采纳率:96%
帮助的人:67.4万
展开全部

我们的看法是密文数据段的开头一个空字节有可能是PHP的serialize函数在处理类成员的保护或私有属性时加上的,但依照文档和网上的例子,应该还有一个空字节与之配对,但是在密文sample中没有找到,所以这个猜测还有待考证。如果数据整体就是一个密文的话,有可能是经过类似RC4或类似的Stream Cipher与一个密钥进行某种异或xor计算后得到的。如果真是这样的话,就可以解释开头空字节的问题了。只要明文与密钥的开头字节相等就会得到空字节的输出,这种情况还是有几率发生的。还有一点能支持Stream Cipher一说的,就是观察这些密文的二进制编码,大部分字节的MSB都是0。而UTF-8编码中只有U+0000到U+007F范围的MSB为0,其余都为1。所以,如果明文与密钥都是UTF-8编码,且含有大量中文的话其xor后的结果就会出现大量MSB为0的密文字节。当然这只是个推测,而且不仅限于UTF-8,别的编码也有大量MSB为1的情况,由于不熟悉就不做分析了。

肿么办68057ff2
2017-12-24 · TA获得超过571个赞
知道小有建树答主
回答量:262
采纳率:98%
帮助的人:64.1万
展开全部

既然s:28:"";是serialize()函数的输出格式,那么unserialize之后也不过是得到里面那串乱码字符串而已。不懂serialize后再base64encode的意义何在。。就这样看这些数据的话起码可以确定绝对不是明文结果,因为据我所知还没有哪种文字编码开头有00字节的。这么说来,我高亮部分的数据才是密文咯。那就要考虑什么样的加密算法会产生如此近似的密文。可以肯定的是这些数据的明文也应该是相近的内容。仅靠这些条件那么猜测会有很多啊,一些不带PRNG的Stream Cipher和Block Cipher的简单实现都有可能对相似输入产出相似输出。但是具体是什么样的算法,是不是标准的算法仅靠这点sample凭我的经验是看不出来的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式