已知明文 和密文,求解密算法

卡号(我授权的卡号) 卡号(数据库保存的卡号)
85391 kJ2bkZk=
85392 kJ2bkZo=
85393 kJ2bkZs=
85395 kJ2bkZ0=
85396 kJ2bkZ4=
85398 kJ2bkZA=
85399 kJ2bkZE=
85500 kJ2dmJg=
85501 kJ2dmJk=
85502 kJ2dmJo=
85503 kJ2dmJs=
85505 kJ2dmJ0=
85506 kJ2dmJ4=
85508 kJ2dmJA=
85509 kJ2dmJE=
85525 kJ2dmp0=
85510 kJ2dmZg=
85526 kJ2dmp4=
85511 kJ2dmZk=
85528 kJ2dmpA=
85512 kJ2dmZo=
85529 kJ2dmpE=
85513 kJ2dmZs=
85530 kJ2dm5g=
85515 kJ2dmZ0=
85531 kJ2dm5k=
85516 kJ2dmZ4=
85532 kJ2dm5o=
85533 kJ2dm5s=
85518 kJ2dmZA=
85519 kJ2dmZE=
85535 kJ2dm50=
85520 kJ2dmpg=
85536 kJ2dm54=
85521 kJ2dmpk=
85538 kJ2dm5A=
85522 kJ2dmpo=
85539 kJ2dm5E=
85550 kJ2dnZg=
85523 kJ2dmps=
91063 kZmYnps=
91065 kZmYnp0=
91066 kZmYnp4=
91068 kZmYnpA=
91069 kZmYnpE=
91080 kZmYkJg=
91081 kZmYkJk=
91082 kZmYkJo=
91083 kZmYkJs=
91085 kZmYkJ0=
85551 kJ2dnZk=
85552 kJ2dnZo=
85553 kJ2dnZs=
85555 kJ2dnZ0=
85556 kJ2dnZ4=
85558 kJ2dnZA=
85559 kJ2dnZE=
85560 kJ2dnpg=
这是一个授权会员卡号,我在软件上输入卡号(明文),授权后保存在数据库中(加密),
我用base64解码,如 kJ2bkZk=应该是85391,解码后是:�����(UTF-8)或者是:悵洃?(GBK)

这个能知道是怎么加密的吗?或者把这加密的给读出来。
因为我要从新写软件(c#写),不用之前的软件,但是我要吧数据库中加密的卡号解密出来,不然我从新写软件,之前的会员卡就用不了了(之前的软件商没有联系方式,一些功能没有,才决定自己从新写个软件,数据库继续用他们的数据库)

c#
0

4个回答

我是找了几个密文进行解码,经过大量测试发现数字和字母的对应关系,我是不是很无聊
0 h
1 g
2 f
3 e
5 c
6 b
8 p
9 o
问我为啥没有4和7是因为给的明文中没有,根据这几个也能找到对应关系了,找到ascII编码
00110000 01101000
00110001 01100111
00110010 01100110
看完楼上两位说的方法,写完测试下确实没问题,经验多了就是好,一眼就看出来是哪的问题
我补充下c#写的方法

//加密方法
public static string getTransAsc(string password)
        {
            Byte[] byteStr = UTF8Encoding.UTF8.GetBytes(password);
            Byte[] resultArray = new byte[byteStr.Length];
            for (int i = 0; i < byteStr.Length; i++)
            {
                resultArray[i] = (byte)(byteStr[i] ^ 0xa8);
            }
            return Convert.ToBase64String(resultArray);
        }
//解密方法
public static string getDecTransAsc(string password)
        {
            Byte[] byteStr = Convert.FromBase64String(password);
            Byte[] resultArray = new byte[byteStr.Length];
            for (int i = 0; i < byteStr.Length; i++)
            {
                resultArray[i] = (byte)(byteStr[i] ^ 0xa8);
            }
            return UTF8Encoding.UTF8.GetString(resultArray);
        }
//调用方法 控制台程序测试的
static void Main(string[] args)
        {
                            string str2 = Console.ReadLine();
                            string con = getTransAsc(str);
                            Console.WriteLine("加密后的字符串:" + con);
                            string str2 = Console.ReadLine();
                            string con2 = getDecTransAsc(str2);
                            Console.WriteLine("解密后的字符串:" + con2);
                          Console.ReadKey();
                }
0
qq_28499833
qq_28499833 好的!谢谢你,采纳你了
7 个月之前 回复

很明显,每个数字在每一位上,原文对应相同的密文。在不同位上不同。
所以可以查表法解决。
进一步,符合这种规律的算法,很可能就是简单的XOR加密。

1

caozhy正解. base64解密后, 对每个字节异或 0xa8 即可得到数字的ascii表示, 可直接打印, 我不会C#, 写了一个python3脚本.

#!/usr/bin/python3

import base64
import sys

input_b64 = sys.argv[1]
decoded = base64.b64decode(input_b64)
for c in decoded:
    print(chr(c ^ 0xa8), end='')
print()

运行:

python3 decode.py kJ2bkZk=

得到结果 85391

1
tangruize
trzzzZ 回复qq_28499833: 加密就是先对原来的字符串每个字符异或0xa8后的字符串使用base64加密. 异或操作有一个可逆的性质, 举例来说 a^b=c, 那么 a^c=b. 假如a是明文, b是密钥0xa8, c是密文, 那么可以通过a异或c得到密钥.
7 个月之前 回复
qq_28499833
qq_28499833 解密顺序是base64解密后对每个字节异或得到数字ASCII码,那么加密顺序是什么呀
7 个月之前 回复
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 不错,你的补充完全正确
7 个月之前 回复

首先,你要知道你密文的加密规则是又哪一种加密方式进行填充的这是规则,你知道规则后才能按照原来的方式进行解密。
参考下rsa,aes 两种加密解密方式

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

5
如何通过对比原文件与加密文件判断加密方式
1
求共线约束下的最小二乘影像匹配算法?
2
已知视屏的加密时的pts时间戳,怎么计算播放时的pts?
3
RSA等非对称加密解密的问题
3
【高德地图】:已知线段两个端点的经纬度,把线段平分成三等分,求每个平分点的坐标
1
三维重建中的匹配算法
6
点到直线的最短距离和问题,优化算法
1
已知空间多面体顶点坐标、连线关系和组成面信息,如何判定空间一点是在多面体内还是多面体外?
2
C# 已知三角形两点坐标和一个夹角,求第三点坐标
5
已知姓氏,手机号前三后四,地址,求查出完整的姓名电话思路?
2
数据结构方面的一个问题算法怎么实现?
1
已知RSA密码中,公钥n=33685247,b=8829979,密文c=2,则明文m=?
1
最近邻算法与图像匹配
1
已知有若干个学生的数据(包括学号、姓名和一门课程的成绩)请编程实现
0
急求!!!用tensorflow搭了lstm的模型进行负荷预测,求问有没有大佬知道loss值已知很大的原因是什么?
4
已知十个经纬度点怎么来判断其中一个经纬度点(确定)距离最近的经纬度点
1
请写出由有值图的求值矩阵生成邻接表的算法
1
(新人求助各位大佬)网络安全:已知明文和主密钥,依据AES算法求解问题
0
如何调用已知函数对一数组进行排序?求具体代码过程(已知函数已给)
3
用Python,已知两条线段的顶点坐标,求两条线的夹角