IC卡·一卡一密加密 & 动态数据防伪方案实现

  • 一卡一密加密算法实现·EncryptionOneCardOneKey

注:当前函数加密算法过于简单,只用于文档说明举例,用户在具体程序中应设计更加完善复杂的加密算法以保证系统安全性

/************************************************
函数名称 : EncryptionOneCardOneKey
功    能 : 根据读到的IC卡卡号数据,进行运算,得到与卡号存在对应关系的密钥数据
由于每张IC卡的卡号都是唯一且长度固定4字节,所以对应生成的密钥数据也是唯一且长度固定6字节
            上述过程简称:1卡1密
参    数 : byte[] CardID:读取到的IC卡卡号数据·固定长度为4个字节
返 回 值 : byte[] Key:生成的密钥数据·固定长度为6个字节 
*************************************************/
public byte[] EncryptionOneCardOneKey(byte[] CardID)
{
  byte[] Key = new byte[6];

  Key[0] = (byte)(CardID[0] ^ CardID[1]);
  Key[1] = (byte)(CardID[1] ^ CardID[2]);
  Key[2] = (byte)(CardID[2] ^ CardID[3]);
  Key[3] = (byte)(CardID[0] ^ CardID[3]);
  Key[4] = (byte)(CardID[0] ^ CardID[2]);
  Key[5] = (byte)(CardID[1] ^ CardID[3]);

  return Key;
}
  • 动态数据加密算法实现· EncryptionDynamicData

注:当前函数加密算法过于简单,只用于文档说明举例,用户在具体程序中应设计更加完善复杂的加密算法以保证系统安全性

/************************************************
函数名称 : EncryptionDynamicData
功    能 : 将刷卡当前系统时间 与 密钥数据进行异或运算,得到动态数据
            因为刷卡当前时间是动态的,所以运算之后得到的数据也是动态的
参    数 : byte[] Key:密钥数据·固定长度为6个字节
            byte[] SystemTime:刷卡当前系统时间·固定长度为6个字节
                   例如:刷卡当前时间为:2022-11-11 12:30:30 
                   则 SystemTime[] = {0x22,0x11,0x11,0x12,0x30,0x30}
返 回 值 : byte[] DynamicData:生成的动态数据·固定长度为6个字节
*************************************************/
public byte[] EncryptionDynamicData(byte[] Key, byte[] SystemTime)
{
  byte[] DynamicData = new byte[6];

  DynamicData[0] = (byte)(Key[0] ^ SystemTime[0]);
  DynamicData[1] = (byte)(Key[1] ^ SystemTime[1]);
  DynamicData[2] = (byte)(Key[2] ^ SystemTime[2]);
  DynamicData[3] = (byte)(Key[3] ^ SystemTime[3]);
  DynamicData[4] = (byte)(Key[4] ^ SystemTime[4]);

  return DynamicData;
}

以一张默认出厂设置,卡号数据为FE 99 7A 44的M1S50卡为例,规定加密扇区为扇区0;动态数据写入到扇区0中的数据块1的前6个字节

  • 系统 · 发卡

  • 设备 · 读卡

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值