DES是一種標(biāo)準(zhǔn)加密算法,它使用對稱密鑰加密法.DES算法密鑰為8字節(jié).3DES(即Triple DES)是DES向AES過渡的加密算法,3DES算法是指使用雙長度(16字節(jié))密鑰K=(KL||KR)將8字節(jié)明文數(shù)據(jù)塊進(jìn)行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對數(shù)據(jù)X進(jìn)行DES加密,DES-1( KR[Y] )表示用密鑰K對數(shù)據(jù)Y進(jìn)行解密
3DES是一種比較安全的加密算法,在IC卡和CPU卡中都得到廣泛的應(yīng)用.
友我科技IC卡web插件系統(tǒng)支持DES和3DES算法,可以單獨使用,也可以直接配合IC卡使用,因為使用的是標(biāo)準(zhǔn)算法, 所以加密的DES或者3DES數(shù)據(jù)可以在別的設(shè)備上解密.兼容性沒有問題.
IC卡web插件支持的DES和3DES有多種方式, 一種是DES和3DES加解密函數(shù)接口:
Des(DesData, DesDataForamt)
DES加解密函數(shù)要配合屬性DesDir,DesMode,DesKey,DesKeyMode等使用
-
DesDir:數(shù)據(jù)加密方向
0:不加密
1:加密
2:解密
-
DesMode: 加解密原數(shù)據(jù)處理方式:
0:原數(shù)據(jù)
1:對原數(shù)據(jù)取反
2:原數(shù)據(jù)+原數(shù)據(jù)取反
-
DesKey: DES和3DES取決于密鑰的字節(jié)長度,16字節(jié)密鑰為3DES算法,8字節(jié)密鑰為DES算法.
-
DesKeyMode:
DesKey密鑰的格式:
0:16進(jìn)制字符串
1:普通字符串
參數(shù):DesData:要加解密的數(shù)據(jù)。DesDataForamt:數(shù)據(jù)的格式,0十六進(jìn)制字符串,1普通字符串
回調(diào)函數(shù)返回結(jié)果:
FunctionID=22,
Result:數(shù)字,函數(shù)執(zhí)行后的返回值,
UID:自定義的序號,
CardNo:無
strData:執(zhí)行加解密后的16進(jìn)制字符串
ValData:無
function enDES()
{
var desKey;
var desData;
var desMode;
desMode = 0;
desKey ="11223344556677889900AABBCCDDEEFF";
desData ="1234567812345678";
rfidreader.DesDir=1;
rfidreader.DesMode=desMode;
rfidreader.DesKey=desKey;
rfidreader.DesKeyMode=0;
rfidreader.Des(desData, 0);
}
解密時改變rfidreader.DesDir=0就可以,還是調(diào)用同樣的代碼.
加解密結(jié)束后回調(diào)函數(shù)如下:
rfidreader.onResult(function(resultdata)
{
switch(resultdata.FunctionID)
{
case 22:
if(resultdata.Result>0)
{
DESData = resultdata.strData;
}
else
{
Alert("Error");
}
break;
}
}
);
在IC卡中可以將數(shù)據(jù)先進(jìn)行DES或者3DES加密后,然后寫入�;蛘咦x出后進(jìn)行DES解密。這樣做需要分2個步驟進(jìn)行, 耗時可能會長一些。 友我科技IC卡web插件中,允許在讀寫IC卡內(nèi)容時同時對數(shù)據(jù)進(jìn)行加解密操作,這樣做更快也更安全。
M1卡讀塊,支持將讀取的數(shù)據(jù)進(jìn)行DES或者3DES加或者解密后送回
M1ReadBlock(blockIndex, FormatID)
M1WriteBlock(blockindex,blockdata,FormatID)
M1卡讀扇區(qū),支持將讀取的數(shù)據(jù)進(jìn)行DES或者3DES加或者解密后送回
M1ReadSector(sectorindex, FormatID)
M1卡寫扇區(qū),支持DES或者3DES加密后寫扇區(qū)
M1WriteSector(blockindex,blockdata,FormatID)
這4個函數(shù)api接口都支持是同時進(jìn)行DES或者3DES操作,取決于如下屬性:
-
DesDir:數(shù)據(jù)加密方向
0:不加密
1:加密
2:解密
-
DesMode: 加解密原數(shù)據(jù)處理方式:
0:原數(shù)據(jù)
1:對原數(shù)據(jù)取反
2:原數(shù)據(jù)+原數(shù)據(jù)取反
-
DesKey: DES和3DES取決于密鑰的字節(jié)長度,16字節(jié)密鑰為3DES算法,8字節(jié)密鑰為DES算法.
-
DesKeyMode:
DesKey密鑰的格式:
0:16進(jìn)制字符串
1:普通字符串
CPU卡很多的計算都需要3DES,在計算密鑰文件對隨機(jī)數(shù)進(jìn)行3DES計算, 這是可以使用IC卡web插件的3DES算法來計算并對CPU卡進(jìn)行密鑰認(rèn)證。
