⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpasswordexp.cpp

📁 加密解密码DES算法的实现。编码和解码
💻 CPP
字号:
  #include "class.h"
  #if(TIANJINPCT==1)

  INT8U CPassWordExp::  keyfac[16]={50,42,34,26,18,10,2,52,44,36,28,20,12,4,54,46};
  INT8U CPassWordExp::  GPassModeFg=1;
  INT8U CPassWordExp::  GProclaFg=1;
  INT8U CPassWordExp::   GKeyFg=1;
  INT8U CPassWordExp::   key[8]={0xc0,0xa8,0x01,0xd9,0x33,0x93,0x00,0x00};
  INT8U CPassWordExp::    proc[8]={0};
  INT8U CPassWordExp::  passwordmode=0;
  INT8U CPassWordExp::   passkeyfg=1;
 // INT8U CPassWordExp::  GLocalIpkey[4]={0xc0,0xa8,0x01,0xd9};


 INT8U CPassWordExp:: PassWordQue(INT8U seq,INT8U comfg)
{
 
 INT8U temp1;
 INT8U temp;
 INT8U i=0;
 //50	42	34	26	18	10	2	52  44	36	28	20	12	4	54	46
 INT8U tempbuf[20];
 INT8U temppwd[8];
 
 
 if(GPassModeFg)
 {
  passwordmode=parameter.Read(PAP0F5ADD,PAP0F5LEN, tempbuf);
  passwordmode=tempbuf[0];
  GPassModeFg=0;
 }
 
 if(passwordmode==0)
   {
   //if((tempbuf[1]==0x22)&&(tempbuf[2]==0x33))
   //    {
        CProtocoTianJin::GPassWord[1]=0x88;
        CProtocoTianJin::GPassWord[0]=0x88;
        return TRUE;
  //     }
  //    else 
  //       return FALSE;
   }
   
   QuestProcla(seq);
   QuestKey(comfg);
 switch(passwordmode)
 {
       
  case 128:
        for(i=0;i<8;i++)
           temppwd[i]=key[i]^proc[i]; 
        break;
       
  case 129:
     // if(passkeyfg)
      {
       padeal.deskey(key,0);
       passkeyfg=0;
      }
      padeal.des(proc, temppwd);
      break;
  default:
      return FALSE;
     break;
 
 }
CProtocoTianJin:: GPassWord[0]=0x00;
CProtocoTianJin:: GPassWord[1]=0x00;
 for(i=0;i<8;i++)
 {
   //(*password)<<=1;
  temp=(keyfac[i]-1)/8;
  //temp=0x01<<temp;
  temp1=(keyfac[i]-1)%8;
  temp1=0x01<<temp1;
  if(temppwd[temp]&temp1)
  CProtocoTianJin:: GPassWord[1]|=0x01<<i;
  temp=(keyfac[i+8]-1)/8;
  //temp=0x01<<temp;
  temp1=(keyfac[i+8]-1)%8;
  temp1=0x01<<temp1;
  if(temppwd[temp]&temp1)
   CProtocoTianJin::GPassWord[0]|=0x01<<i;
 }

}
void CPassWordExp:: QuestProcla(INT8U seq)
{
 INT8U tempbuf[20];
if(GProclaFg)
{
parameter.Read(PAP0F85ADD_TJ+2,4, tempbuf); 
proc[0]=tempbuf[1];
proc[1]=tempbuf[0];
proc[2]=tempbuf[3];
proc[3]=tempbuf[2];
parameter.Read(PAP0F5ADD,1, tempbuf);
proc[7]=tempbuf[0];
proc[4]=0x93;
proc[5]=0x33;
GProclaFg=0;
}

proc[6]=seq;



}
void CPassWordExp:: QuestKey(INT8U comfg)
{
 //INT8U j,i;
 INT8U tempbuf[20];
 //INT8U temp;
 if(GKeyFg)
 {
 /*j=0;
 parameter.Read(PAP0F84ADD_TJ,1, &temp);
 if((GComMode==SleepMode)||(comfg!=ComModeGprs))
  {
     key[j++]=127;
     key[j++]=0;
     key[j++]=0;
     key[j++]=1;
   }
 else
 {
// parameter.Read(PAP0F3ADD,6, tempbuf);

 for(i=0;i<4;i++)
 key[j++]=GLocalIp[i];
 }*/
 // for(i=0;i<4;i++)
 //key[j++]=GLocalIpkey[i];
 //key[j++]=0x33;
 //key[j++]=0x93;
 parameter.Read(PAP0F5ADD,3, tempbuf);
 key[6]=tempbuf[2];
 key[7]=tempbuf[1];
 GKeyFg=0;
 passkeyfg=1;
 }


}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -