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²å¼þϵͳ֧³ÖDESºÍ3DESËã·¨,¿ÉÒÔµ¥¶ÀʹÓÃ,Ò²¿ÉÒÔÖ±½ÓÅäºÏIC¿¨Ê¹ÓÃ,ÒòΪʹÓõÄÊDZê×¼Ëã·¨, ËùÒÔ¼ÓÃܵÄ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£ºÎÞ
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¾Í¿ÉÒÔ,»¹Êǵ÷ÓÃͬÑùµÄ´úÂë.
¼Ó½âÃܽáÊøºó»Øµ÷º¯ÊýÈçÏÂ:
rfidreader.onResult(function(resultdata)
{
switch(resultdata.FunctionID)
{
case 22:
if(resultdata.Result>0)
{
DESData = resultdata.strData;
}
else
{
Alert("Error");
}
break;
}
}
);
ÔÚ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£¬ÔÚ¼ÆËãÃÜÔ¿Îļþ¶ÔËæ»úÊý½øÐÐ3DES¼ÆË㣬 ÕâÊÇ¿ÉÒÔʹÓÃIC¿¨web²å¼þµÄ3DESËã·¨À´¼ÆËã²¢¶ÔCPU¿¨½øÐÐÃÜÔ¿ÈÏÖ¤¡£
