BS结构RFID读写器web插件开发之八-----DES和3DES加解密
DES和3DES加解密 关于DES和3DES DES是一种标准加密算法,它使用对称密钥加密法.DES算法密钥为8字节.3DES(即Triple DES)是DES向AES过渡的加密算法,3DES算法是指使用双长度(16字节)密钥K=(KL||KR)将8字节明文数据块进行3次DES加密/解密。如下所示:Y = DES( KL[DES-1( KR[DES( KL[X] )] )] )解密方式为:X = DES-1( KL[DES( KR[DES-1( KL[Y] )] )] )其中,DES( KL[X] )表示用密钥K对数据X进行DES加密,DES-1( KR[Y] )表示用密钥K对数据Y进行解密3DES是一种比较安全的加密算法,在IC卡和CPU卡中都得到广泛的应用. IC卡web插件支持的3DES 友我科技IC卡web插件系统支持DES和3DES算法,可以单独使用,也可以直接配合IC卡使用,因为使用的是标准算法, 所以加密的DES或者3DES数据可以在别的设备上解密.兼容性没有问题. DES和3DES接口 IC卡web插件支持的DES和3DES有多种方式, 一种是DES和3DES加解密函数接口: Des(DesData, DesDataForamt) DES加解密函数要配合属性DesDir,DesMode,DesKey,DesKeyMode等使用 DesDir:数据加密方向0:不加密1:加密2:解密 DesMode: 加解密原数据处理方式:0:原数据1:对原数据取反2:原数据+原数据取反 DesKey: DES和3DES取决于密钥的字节长度,16字节密钥为3DES算法,8字节密钥为DES算法. DesKeyMode:DesKey密钥的格式:0:16进制字符串1:普通字符串 参数:DesData:要加解密的数据。DesDataForamt:数据的格式,0十六进制字符串,1普通字符串回调函数返回结果: FunctionID=22,Result:数字,函数执行后的返回值,UID:自定义的序号,CardNo:无strData:执行加解密后的16进制字符串ValData:无 以下是加密的js示例: function enDES() { var desKey; var desData; var desMode; desMode = 0; desKey ="11223344556677889900AABBCCDDEEFF";//16字节密钥为3DES算法, 8字节密钥为DES算法 desData ="1234567812345678"; rfidreader.DesDir=1; rfidreader.DesMode=desMode; rfidreader.DesKey=desKey; rfidreader.DesKeyMode=0; rfidreader.Des(desData, 0); } 解密时改变rfidreader.DesDir=0就可以,还是调用同样的代码.加解密结束后回调函数如下: rfidreader.onResult(function(resultdata) { switch(resultdata.FunctionID) { case 22: if(resultdata.Result>0) { DESData = resultdata.strData; } else { Alert("Error"); } break; } } ); IC中如果使用DES和3DES 在IC卡中可以将数据先进行DES或者3DES加密后,然后写入。或者读出后进行DES解密。这样做需要分2个步骤进行, 耗时可能会长一些。 友我科技IC卡web插件中,允许在读写IC卡内容时同时对数据进行加解密操作,这样做更快也更安全。 M1卡读块,支持将读取的数据进行DES或者3DES加或者解密后送回 M1ReadBlock(blockIndex, FormatID) M1卡写块,支持DES或者3DES加密后写块 M1WriteBlock(blockindex,blockdata,FormatID) M1卡读扇区,支持将读取的数据进行DES或者3DES加或者解密后送回 M1ReadSector(sectorindex, FormatID) M1卡写扇区,支持DES或者3DES加密后写扇区 M1WriteSector(blockindex,blockdata,FormatID) 这4个函数api接口都支持是同时进行DES或者3DES操作,取决于如下属性: DesDir:数据加密方向0:不加密1:加密2:解密 DesMode: 加解密原数据处理方式:0:原数据1:对原数据取反2:原数据+原数据取反 DesKey: DES和3DES取决于密钥的字节长度,16字节密钥为3DES算法,8字节密钥为DES算法. DesKeyMode:DesKey密钥的格式:0:16进制字符串1:普通字符串 CPU卡中如何使用3DES CPU卡很多的计算都需要3DES,在计算密钥文件对随机数进行3DES计算, 这是可以使用IC卡web插件的3DES算法来计算并对CPU卡进行密钥认证。 参考资料: IC卡读卡器web开发指南.