一卡一密算法分析及加密软件定制开发

2021/4/14 17:42:26      点击:


一、    什么是一卡一密

 一卡一密,就是每张卡的密码都不一样,由于每张卡的卡号都不相同,所以根据卡号通过设计的算法得到密码,这样实现一卡一密加密,一卡一密并不能提高破解难度,但是,单张卡片被破解,对其他卡片影响不大。另外你想购买空白卡,加密以后,在系统上使用,这就很难实现了,具体方法在后边讲解。

二、    一卡一密算法分析

我们以一个用户的数据为例,讲解一个简单的一卡一密系统的算法分析,一卡一密分析至少需要3张卡的卡号以及对应的密码。如下图

第一张卡:

第二张卡:

第三张卡:

我们看到上边是3张卡的数据,0扇区0块前8位是卡号,3区块前12位是A密码,后12位是B密码,我们看到A密码都是一样的12个F,B密码各不相同,我们把他粘贴下来。

第一张:卡号 1B0B44F6  密码 1BF60B441BF6

第二张:卡号 CB3A3BF6  密码 CBF63A3BCBF6

第三张:卡号 25D14795  密码  2595D1472595

刚一看,8 位卡号,12位密码,有些傻眼,这怎么计算得到密码的呢?

细看我们发现他们有相同部分。

分析:第一张卡,卡号前2位和密码前2位相同,另外2张卡也有这样规律。密码第3-4位和卡号第7-8位相同,另外2张卡也一样规律。再看密码第5-8位0B44,就是卡号的第3-6位嘛,再细看另外2张卡也是这样的。密码第9-12位1BF6和密码第1-4位相同,这不就是卡号的第1-2 和第7-8位嘛,这样一分析,好简单哦!

三、    编写一卡一密加密软件

我们已经分析出来了卡片密码算法,我们不能每一张卡都读一下,根据卡号手工算密码,然后写入卡片,这样太慢了,太费事了。

我们需要根据算法,编写一卡一密加密软件,让软件自动根据卡号,根据算法,自动计算出密码,并且写入到卡片中。

以第三张卡为例,回顾一下密码计算方法

第三张:卡号 25D14795  密码  2595D1472595

密码第1-4位:卡号第1-2和卡号第7-8位 25 95

密码第5-8位:卡号第3-6位 D147

密码第9-12位:卡号第1-2和卡号第7-8位 25 95

好了算法分析出来了,很简单,接下来编写软件。

找一个读写器,查看读写器的开发包,一般会有读卡号的函数,例如rf_card_num(),他会在不需要密码验证的情况下,读取M1卡的8位卡号,然后我们对卡号字符串运算,卡号字符串cardnostr,密码 password,计算方法如下:

password=copy(cardnostr,1,2)+copy(cardnostr,7,2)+copy(cardnostr,3,4)+ copy(cardnostr,1,2)+ copy(cardnostr,7,2)

然后用写卡函数,把密码写入到B密码的位置就可以了。

四、   几个疑问???

1、一卡一密加密软件通用吗?

有朋友问,你有一卡一密加密软件吗?让我用用。一卡一密加密软件是不通用的,因为算法不同,得到的密码也不相同,每个系统设计人员设计的算法都不相同,有简单的,有复杂的。

2、一卡一密算法能找出来吗?

   一卡一密算法很难分析出来,只有简单的算法,可以分析出来,复杂的算法,很难分析出来,可以说只有很少一部分可以找出来算法。

五、    定制开发软件

   一卡一密系统,由于算法不同,软件是不通用的,因此需要定制开发软件,前提是先找到算法,然后才可以根据算法定制开发软件。

    可以做成批量加密软件,根据卡号自动计算密码,自动加密,非常方便。