会抽烟的鱼 发表于 2015-4-5 09:58:57

求助密界大神,解密时有 位与 计算 如何加密?

x是密文,y是字典指针

解密过程如下:
1、 a = x shl 5
2、 a=12 or a
3、 y=1FF and a   (这里只保留二进制后9位得到结果在字典中的指针地址)


问:由于计算过程中用到了 位与( and ) 计算,加密算法应该怎么写?

零下八度 发表于 2015-4-5 10:40:59

andor 不可逆运算,你呼叫大神也没用。

F8LEFT 发表于 2015-4-5 13:14:36

零下八度 发表于 2015-4-5 10:40
andor 不可逆运算,你呼叫大神也没用。

这可难说得很{:soso_e133:}

会抽烟的鱼 发表于 2015-4-5 14:01:50

零下八度 发表于 2015-4-5 10:40
andor 不可逆运算,你呼叫大神也没用。

绝对可逆,这个算法是某软件的通信加密内容。不然服务器是怎么加密的?

零下八度 发表于 2015-4-5 16:11:06

你这样说未免太牵强了点,数据加解密流程复杂度尚未可知,你这一小段代码不能说明什么,整个解密流程有位与参与,不代表加密的时候他要逆运算。
比如MD5,加密流程经常用到,但是在服务器(客户端)解密流程里不一定会将它解开,这样说能理解么?

PS:事实上MD5并非无解,上面只是举个常见点的例子。

零下八度 发表于 2015-4-5 16:18:59

本帖最后由 零下八度 于 2015-4-5 16:30 编辑

有数字有真.相,   位与(AND)运算为例:式子:
A      B   C
0 and 0 =0
1 and 0 =0
从上式可以知道:已知操作数 B跟C都是0,这时候操作数A可以是0,可以是1。

应该、没算错吧?





会抽烟的鱼 发表于 2015-4-5 16:36:08

零下八度 发表于 2015-4-5 16:18
有数字有真.相,   位与(AND)运算为例:式子5 and 3 = 1
分解:
         0101   A


我理解的加解密也是有位与参与就不能逆向出算法,但服务器与客户端交互的就是简单的字符串,我也只是好奇像这种情况按理说应该是加解密使用同一个字典,并且加解密可逆才对。我自己试着写了一个解密程序,可以正常解密,说明解密方法没错,解密过程并没使用复杂的算法,比如RSA,MD5 。



会抽烟的鱼 发表于 2015-4-5 16:40:58

正像 零度 所讲,A有2种可能,那我们在知道B , C 的情况算出A的2种可能呢?由于A不是1位的,并且A,B,C二进制不等长。

零下八度 发表于 2015-4-5 17:10:06

会抽烟的鱼 发表于 2015-4-5 16:40
正像 零度 所讲,A有2种可能,那我们在知道B , C 的情况算出A的2种可能呢?由于A不是1位的,并且A,B,C二进 ...

{:soso_e101:}你也知道【由于A不是1位的,并且A,B,C二进制不等长】,所以就更不可能了啊。把你的操作数分解成二进制,不就N个0跟1嘛,1位数的时候,可能两个结果,N位的时候,可能性就更多了嘛。


asdasduijk 发表于 2015-4-5 21:45:46

整个解密流程有位与参与,不代表加密的时候也要逆运算
页: [1]
查看完整版本: 求助密界大神,解密时有 位与 计算 如何加密?