加密密文求大神帮助看下解密算法
字符:abcdefghijklmnopqrstuvwxyz对应16进制:6162636465666768696A6B6C6D6E6F7071727374757677787...
字符:a b c d e f g h i j k l m n o p q r s t u v w x y z
对应16进制 :61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A
加密后16进制:AC AB AA A9 A8 B7 B6 B5 B4 B3 B2 B1 B0 7F 7E 7D 7C 7B 7A 79 78 87 86 85 84 83
菜鸟能力 有限 看了一下午像是取反后亦或8算的 但还是不对 求大神指导指导 展开
对应16进制 :61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A
加密后16进制:AC AB AA A9 A8 B7 B6 B5 B4 B3 B2 B1 B0 7F 7E 7D 7C 7B 7A 79 78 87 86 85 84 83
菜鸟能力 有限 看了一下午像是取反后亦或8算的 但还是不对 求大神指导指导 展开
1个回答
展开全部
根据值的对应关系 凑了一个可以得到一一对应的算法
输出符合已知的所有项
并且可以做到0-255中一一对应,无重复加密数据
#include <stdio.h>
int main()
{
int i;
int l, h;
int lt, ht;
int t;
for(i = 0; i < 256; i ++)
{
l = (i+2)&0x0f;
h = ((i+2)&0xf0)>>4;
lt = 0xf-l;
if(h&0x1) h++;
else if(h == 0) h = 0xf;
else h --;
ht = 0xf-h;
if(l &0x08) ht ++;
t = ((ht&0xf)<<4) | lt;
printf("%02x : %02x \n", i, t);
}
return 0;
}
解密的话,你反推一下,或者直接查表
输出符合已知的所有项
并且可以做到0-255中一一对应,无重复加密数据
#include <stdio.h>
int main()
{
int i;
int l, h;
int lt, ht;
int t;
for(i = 0; i < 256; i ++)
{
l = (i+2)&0x0f;
h = ((i+2)&0xf0)>>4;
lt = 0xf-l;
if(h&0x1) h++;
else if(h == 0) h = 0xf;
else h --;
ht = 0xf-h;
if(l &0x08) ht ++;
t = ((ht&0xf)<<4) | lt;
printf("%02x : %02x \n", i, t);
}
return 0;
}
解密的话,你反推一下,或者直接查表
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询