我想取消屏蔽或取消混淆包含某些字符的base64编码字符串。
例如,我知道VovL5SaV_iSBx6oAFGypsTCO
匹配00000000
。有没有办法,知道更多的数据(输入和输出),找出混淆字符串的算法?我找不到任何东西。
一些例子:
f(A)
更长,则A
的结果会有所不同f(A)会更长,如果A更短f(A)
则更短。答案 0 :(得分:2)
根据您提到的内容,似乎加密使用分组密码: 关于你阻塞密码的一个nive属性是块的加密并不依赖于之前的一个,这不是真的,(并且非常糟糕的做法=对攻击者非常好),其中一个块这样做的密码是: ECB:https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_.28CBC.29,因为您可以看到每个加密使用相同的密钥,并且分组密码可以等同于允许猜测解密任何内容的XOR。检查尝试f(00000000000000)长度是否超过一个块并查看模式是否重复自我。 如果不是这种情况,您可能会使用CTR之类的内容:https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_.28CTR.29这里使用"密钥(i)" = blockcipher(密钥,nonce(i))用于加密每个块使用异或,如果你设法再次计算f(000000000000)并找到键(1),键(2)......你可以使用它们来解密你想要的任何东西。如果你能为我提供用于混淆的工具,我可以解密你想要的东西
答案 1 :(得分:2)
鉴于你所说的和发表的评论,我会说是的,知道更多的数据对[obfuscated/cleartext]
可以帮助你理解基础算法。
您必须分析各种属性,例如字符串长度和字符冗余,字节值移位和变化小变化(例如:将000000
更改为000001
)另外,控制是否混淆的字符串是可预测的或可重复的。
最后,试着看看你是否可以伪造自己的混淆文本并查看结果。这可以通过模糊测试来实现,并且可以帮助您以更积极的方式预测算法。
根据你的说法,我会说这不是数据的安全块加密,而是替代。它可能是字节级的ROT13或XOR,都有一些填充(元数据?)。
请注意,_
似乎充当了分隔符:无法解码字符串,但_
周围的两个部分都可以。
答案 2 :(得分:-1)
我想帮助你,但在United States Digital Millennium copyright act section 1201下这是非法的。也许在一个拥有更多自由的国家里,某个人会有更好的回答。
1201. (1) A. No person shall circumvent a technological measure
that effectively controls access to a work protected under this title.