【问题标题】:PHP XOR DecryptionPHP异或解密
【发布时间】:2011-11-21 16:24:37
【问题描述】:

我有一个来自这样的网页的加密参数 V:

page.php?V=5E5C535C584B40584A4A4E564B5D4503510755020402080C580A015D0D0A5A010206070C0E025C000F005D080E5F5D

V 像上面一样被加密:

MD5:

md5("a=login|password") = b90669a351161d0d74bed0e04d7b5eef 

异或:

password= "1234567899999999"
encryptedXOR = obj.XOREncryption(password,"login|password|b90669a351161d0d74bed0e04d7b5eef")

这给出了类似的东西:

encryptedXOR = 5E5C535C584B48584A4A4E564B5D4503510755020402080C580A015D0D0A5A010206070C0E025C000F005D080E5F5D

我想要的是使用密码解密这个'ecryptedXOR'的函数,这样我就可以得到:

login|password|b90669a351161d0d74bed0e04d7b5eef

这是我到目前为止所做的: http://pastebin.com/D9mzx82Q

【问题讨论】:

  • 可以通过同一个“密码”异或得到原字符串
  • obj.XOREncryption 使用什么语言?如果那是 JS,那么它会按位对字符串进行 OR,除非它实际上是字符串中的分隔符,并且您在某处缺少 "。
  • Nacereddine,您应该将其发布为答案。
  • @Nacereddine 'password' 是使用 XOR 加密/解密的关键,我在问如何“获取原始字符串”!
  • @Crontab 我觉得它太短了,不能成为一个好的答案。我现在确实发布了它,希望有人会发布一个更好的解释。

标签: php encryption md5 xor


【解决方案1】:

你可以通过相同的“密码”异或得到原始字符串。

编辑:

来自Wikipedia:

可以通过使用给定密钥对每个字符应用按位异或运算符来加密文本字符串。要解密输出,只需重新应用密钥即可删除密码。

因此,如果您的 obj.XOREncryption() 只做一个简单的异或运算,则通过第二次应用相同的操作,您将获得原始文本:

decryptedXOR = obj.XOREncryption(password, encryptedXOR )

【讨论】:

  • 你每分钟都在编辑你的帖子,兄弟,我对XOREncryption功能一无所知,我手中唯一的东西是:V参数和加密/解密密码
  • @Zonta V 在这种情况下是加密字符串,您创建一个函数(如果您还没有,我假设您已经拥有)对 V 参数的内容进行异或使用您已经拥有的password,您将获得您正在寻找的login|password|b90669a351161d0d74bed0e04d7b5eef。
  • @Zonta:一个简单的 XOR 只是遍历原始字符串中的每个字符,并将其与密码中的相应字符进行 XOR。伪代码:for i=0..length(input) { output = output + input[i] XOR password[i mod length(password)] }
  • @mcrumley :谢谢,如果你能看到我之前粘贴过的代码(pastebin.com/D9mzx82Q)
  • @Zonta 从头开始​​是要走的路
猜你喜欢
  • 1970-01-01
  • 2011-11-24
  • 2014-01-01
  • 2021-05-16
  • 1970-01-01
  • 2014-12-23
  • 2018-07-15
  • 1970-01-01
  • 2012-05-15
相关资源
最近更新 更多