求助密界大神,解密时有 位与 计算 如何加密?
x是密文,y是字典指针解密过程如下:
1、 a = x shl 5
2、 a=12 or a
3、 y=1FF and a (这里只保留二进制后9位得到结果在字典中的指针地址)
问:由于计算过程中用到了 位与( and ) 计算,加密算法应该怎么写?
andor 不可逆运算,你呼叫大神也没用。 零下八度 发表于 2015-4-5 10:40
andor 不可逆运算,你呼叫大神也没用。
这可难说得很{:soso_e133:}
零下八度 发表于 2015-4-5 10:40
andor 不可逆运算,你呼叫大神也没用。
绝对可逆,这个算法是某软件的通信加密内容。不然服务器是怎么加密的?
你这样说未免太牵强了点,数据加解密流程复杂度尚未可知,你这一小段代码不能说明什么,整个解密流程有位与参与,不代表加密的时候他要逆运算。
比如MD5,加密流程经常用到,但是在服务器(客户端)解密流程里不一定会将它解开,这样说能理解么?
PS:事实上MD5并非无解,上面只是举个常见点的例子。
本帖最后由 零下八度 于 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:18
有数字有真.相, 位与(AND)运算为例:式子5 and 3 = 1
分解:
0101 A
我理解的加解密也是有位与参与就不能逆向出算法,但服务器与客户端交互的就是简单的字符串,我也只是好奇像这种情况按理说应该是加解密使用同一个字典,并且加解密可逆才对。我自己试着写了一个解密程序,可以正常解密,说明解密方法没错,解密过程并没使用复杂的算法,比如RSA,MD5 。
正像 零度 所讲,A有2种可能,那我们在知道B , C 的情况算出A的2种可能呢?由于A不是1位的,并且A,B,C二进制不等长。 会抽烟的鱼 发表于 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位的时候,可能性就更多了嘛。
整个解密流程有位与参与,不代表加密的时候也要逆运算
页:
[1]