• 一卡一密加密算法实现·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个字节

  • 系统 · 发卡

  • 设备 · 读卡

IC卡·一卡一密加密 动态数据防伪方案实现相关推荐

  1. PBOC规范研究之十一 ---复合动态数据认证(转)

    1. 概述 CDA由IC卡动态签名的生成和终端对签名的验证组成.由于直到CDA签名验证时才需要公钥,公钥的恢复可以在CDA签名前的任何时候.在公钥恢复阶段,发现的错误可能导致CDA失败(TVR&quo ...

  2. 小米NFC手机复制加密IC门禁卡

    几年没有发过任何文字信息了.闲来无事发一个NFC手机复制加密门禁卡的教程 思路: 第一步通过破解加密的门禁卡得到dump文件,获取卡号.修改dump文件只保留0扇区0块的内容也就是卡号,通过读卡器写入 ...

  3. RFID第一期——各种IC卡ID卡详解

    起因 放假闲来无事,在B站冲浪,看到有人在讨论IC卡,我在这方面刚好还是有这么一点了解,就拿MF1卡给别人举了个例子,然后MF1卡就被开除出IC卡籍了. 有点气,但是仔细想想,网上关于这些卡的介绍知识 ...

  4. 非接触式IC智能(射频)卡

    一.Mifare 1非接触式IC智能射频卡特点 Mifare 1 IC智能(射频)卡的核心是Philips 公司的Mifare 1 IC S50(-01,-02,-03,-04)系列微模块(微晶片). ...

  5. 如何区分电梯卡为id卡ic卡_UID卡是什么?和IC卡、ID卡有什么区别?

    原标题:UID卡是什么?和IC卡.ID卡有什么区别? 生活中,我们经常用到门禁卡.考勤卡.电梯卡还有停车卡,这些功能是怎么实现的呢?这是靠卡里封装的芯片和线圈来实现各种功能,不同的芯片频率.容量.读写 ...

  6. 银联IC卡读卡流程详解--读卡器与卡交互指令

    最近因研究了下银联借记/贷记应用卡片规范,发现网上可参考资源较少,于是萌生了写下这篇文字的想法,希望可以帮助到有需要的兄弟姐妹,有描述不清晰或者有错误的地方欢迎指正. 下面进入正题,测试使用的卡是招商 ...

  7. 学习使用PN532来复制IC门禁卡

    学习使用PN532来复制IC门禁卡 PN532简介 PN532模块 使用前准备 硬件接线 软件设置 读取数据 写入数据 写入完成 总结 原文链接:学习使用PN532来复制IC门禁卡 PN532简介 P ...

  8. 国产“芯”时代 盘点国内十大IC卡制卡企业

    我国是全球IC卡及IC卡模块生产大国,而随着IC卡企业对芯片设计.制造和测试.模块封装等核心技术逐渐掌握,技术水平和自主创新能力都得到大幅提升,IC卡行业的整体竞争力不断提高.下面就来看看我国IC卡制 ...

  9. ic芯片写卡软件的分类

    芯片卡分类:1.非加密存储器卡:卡内的集成电路<芯片写卡器>主要是EEPROM,<>atm卡口+<202<叩>295<叩>808>具有数据存 ...

最新文章

  1. IT人永远不老,老程序员价值何在?
  2. python零基础看什么视频和书籍-资料│最适合大学生零基础学的Python视频+电子书...
  3. oracle查数据存入数组,如何在SQL查询中使用Oracle关联数组
  4. 关于deepearth的一点小问题
  5. Android之使用ViewPager实现图片展示(最简单的)
  6. 【Elasticsearch】Elasticsearch:Searchable snapshot - 可搜索的快照
  7. 一个域名能申请多少个ssl_必须要有域名才能申请SSL证书吗?
  8. linux 安装vmware-tools详解
  9. 百度人脸识别,一次耗时600毫秒
  10. WinForm和WPF的区别
  11. 15款超好用的短链接在线生成器(新浪t.cn、腾讯url.cn)
  12. 纸的大小图解_手工折纸大全图解 不一定是A4大小)一般都有7
  13. Java算法——加一(LeetCode第66题)
  14. 再谈EPT与影子页表
  15. python 马赛克还原_马赛克消除还原工具Depix测试
  16. Hadoop常见错误及解决方案、Permission denied: user=dr.who, access=WRITE, inode=“/“:summer:supergroup:drwxr-xr-x
  17. H5移动端滑动表格固定表头和首列(纯css实现)
  18. Laravel学习笔记目录
  19. adb通过无线wifi连接安卓手机
  20. OC-Xml文件解析

热门文章

  1. 太阳能路灯c语言程序,基于单片机的智能太阳能路灯控制系统的设计方案
  2. C++对象模型-在对象模型的尖端 第七章笔记
  3. EEPROM, NAND FLASH, NOR FLASH
  4. Linux之命令scp远程拷贝文件
  5. 什么是:堡垒机、虚拟专用网、日志审计、数据库防水坝、防火墙
  6. java.io和java.nio性能简单对比
  7. Javascript中append和appendChild有什么不同?
  8. 10年观察1000家企业,我发现干大事的老板,都有4个特质
  9. APFS 苹果文件格式的小介绍 Apple File System
  10. Android 安卓动画 属性动画 - 移动动画