示例#1
0
 private void SetUserUI(User user)
 {
     cbUserName.Text        = user.UserName;
     cbkRememberPwd.Checked = user.RememberPwd;
     cbkAutoLogin.Checked   = user.AutoLogin;
     if (user.RememberPwd)
     {
         tbUserPwd.Text = Encrypt.DES3Decrypt(user.UserPwd, Encrypt.MD5Encrypt(user.UserName));
     }
 }
示例#2
0
        private TransResult UnPackBankBag()
        {
            var  ret  = TransResult.E_UNPACKET_FAIL;
            bool bret = false;
            bool wret;

            //string key = "V9Zhy1tiOOoy/tDQHIlYFVfWYctbYjjq";
            try
            {
                var RecvData = new byte[recvLen - headLen];
                RecvData = UnpackHead();
                byte[] bbaglen = new byte[4];
                Array.Copy(RecvData, 0, bbaglen, 0, 4);
                int ibaglen = int.Parse(Encoding.GetEncoding("GBK").GetString(bbaglen).Replace("\0", ""));

                if (ibaglen != 0)
                {
                    byte[] btemprecv = new byte[ibaglen];
                    Array.Copy(RecvData, 4, btemprecv, 0, ibaglen);
                    string tempstr  = Encoding.GetEncoding("GBK").GetString(btemprecv);
                    byte[] recvdata = Convert.FromBase64String(tempstr);
                    int    nibaglen = (recvdata.Length % 8 == 0 ? recvdata.Length : recvdata.Length + 8 - recvdata.Length % 8);
                    byte[] Bagdata  = new byte[nibaglen];
                    Array.Copy(recvdata, Bagdata, nibaglen);
                    byte[] bkey        = Convert.FromBase64String(mainKey);
                    byte[] bagrecvdata = Encrypt.DES3Decrypt(Bagdata, bkey);
                    RecvBagData = Encoding.GetEncoding("GBK").GetString(bagrecvdata);
                    Log.Info("Unpackdata:" + RecvBagData);
                    bret = Unpackbagfix();
                    ret  = bret ? TransResult.E_SUCC : TransResult.E_HOST_FAIL;
                }
                if (recvLen > headLen + ibaglen + 4)
                {
                    wret = false;
                    byte[] jsonByte = new byte[recvLen - headLen - ibaglen - 4];
                    Array.Copy(RecvData, ibaglen + 4, jsonByte, 0, jsonByte.Length);
                    var strJson = Encoding.GetEncoding("GBK").GetString(jsonByte);
                    Log.Info("strJson:" + strJson);
                    RecvPackageJson = JsonConvert.DeserializeObject <CommunicateInfo>(strJson);
                    wret            = UnpackJsonfix();
                    ret             = bret && wret ? TransResult.E_SUCC : TransResult.E_HOST_FAIL;
                }
            }
            catch (Exception ex)
            {
                ret = TransResult.E_UNPACKET_FAIL;
                Log.Error(GetType().Name, ex);
            }

            //Encrypt.DES3Decrypt(recvStr, keyStr);
            return(ret);
        }
示例#3
0
        private void cbUserName_TextChanged(object sender, EventArgs e)
        {
            User user = m_bllUser.GetUserForName(cbUserName.Text, m_nSelectedPlatformId);

            if (user != null)
            {
                //如果用户名在数据库中可以查找到则直接将数据库的值赋值过去
                cbkRememberPwd.Checked = user.RememberPwd;
                cbkAutoLogin.Checked   = user.AutoLogin;
                if (user.RememberPwd)
                {
                    tbUserPwd.Text = Encrypt.DES3Decrypt(user.UserPwd, Encrypt.MD5Encrypt(user.UserName));
                }
            }
            else
            {
                tbUserPwd.Text         = string.Empty;
                cbkRememberPwd.Checked = false;
                cbkAutoLogin.Checked   = false;
            }
        }
示例#4
0
        protected void DoSignInSucc()
        {
            string time = RecvPackage.GetString(12);               //时间
            string date = RecvPackage.GetString(13);               //日期

            SetBatchNo(RecvPackage.GetString(60).Substring(2, 6)); //记录批次号

            byte[] bField62 = new byte[0];
            bField62 = Utility.str2Bcd(RecvPackage.GetString(62));

            byte[] EPinkey = new byte[KeyLength];
            byte[] EMackey = new byte[KeyLength];
            switch (DType)
            {
            case DesType.Des:
                Array.Copy(bField62, 0, EPinkey, 0, KeyLength);
                Array.Copy(bField62, 12, EMackey, 0, KeyLength);
                break;

            case DesType.TripleDes:
                Array.Copy(bField62, 0, EPinkey, 0, KeyLength);
                Array.Copy(bField62, 20, EMackey, 0, 8);
                Array.Copy(bField62, 20, EMackey, 8, 8);
                break;
            }
            KeyManager.SetEnMacKey(SectionName, EMackey);
            KeyManager.SetEnPinKey(SectionName, EPinkey);
            //Log.Debug("MackeyEn:" + Utility.bcd2str(EMackey, EMackey.Length));
            //Log.Debug("PinkeyEn:" + Utility.bcd2str(EPinkey, EPinkey.Length));

            byte[] PinKey = null, WorkKey = null;
            if (EnType == EncryptType.Soft)
            {
                byte[] MasterKey = GetSoftMasterKey();
                if (DType == DesType.Des)
                {
                    PinKey  = Encrypt.DESDecrypt(EPinkey, MasterKey);
                    WorkKey = Encrypt.DESDecrypt(EMackey, MasterKey);
                }
                else if (DType == DesType.TripleDes)
                {
                    PinKey  = Encrypt.DES3Decrypt(EPinkey, MasterKey);
                    WorkKey = Encrypt.DES3Decrypt(EMackey, MasterKey);
                }
            }
            else
            {
                PinKey  = new byte[KeyLength];
                WorkKey = new byte[KeyLength];
                Esam.SetWorkmode(Esam.WorkMode.Encrypt);

                Esam.UserDecrypt(GetKeyIndex(), EPinkey, KeyLength, PinKey);
                Esam.UserDecrypt(GetKeyIndex(), EMackey, KeyLength, WorkKey);
                Esam.SetWorkmode(Esam.WorkMode.Default);
            }
            KeyManager.SetDeMacKey(SectionName, WorkKey);
            KeyManager.SetDePinKey(SectionName, PinKey);

            if (!CheckKeyValue())
            {
                SetResult(TransResult.E_KEYVERIFY_FAIL);
            }
            else
            {
                //更新当前机器时间
                int      year  = System.DateTime.Now.Year;
                int      month = Convert.ToInt32(date.Substring(0, 2));
                int      day   = Convert.ToInt32(date.Substring(2, 2));
                int      hour  = Convert.ToInt32(time.Substring(0, 2));
                int      mi    = Convert.ToInt32(time.Substring(2, 2));
                int      ss    = Convert.ToInt32(time.Substring(4, 2));
                DateTime newDt = new DateTime(year, month, day, hour, mi, ss);
#if !DEBUG
                Utility.SetSysTime(newDt);
#endif
            }
        }
示例#5
0
        protected void DoSignInSucc()
        {
            var time = RecvPackage.GetString(12);                  //时间
            var date = RecvPackage.GetString(13);                  //日期

            SetBatchNo(RecvPackage.GetString(60).Substring(2, 6)); //记录批次号

            var bField62 = new byte[0];

            bField62 = RecvPackage.GetArrayData(62); // Utility.str2Bcd(RecvPackage.GetString(62));

            var EPinkey = new byte[KeyLength];
            var EMackey = new byte[KeyLength];
            var ETrakey = new byte[KeyLength];

            switch (DType)
            {
            case DesType.Des:     //目前不支持des单倍长
                Array.Copy(bField62, 0, EPinkey, 0, KeyLength);
                Array.Copy(bField62, 12, EMackey, 0, KeyLength);
                break;

            case DesType.TripleDes:
                Array.Copy(bField62, 1, EPinkey, 0, 16);
                Array.Copy(bField62, 21, EMackey, 0, 16);
                Array.Copy(bField62, 41, ETrakey, 0, 16);
                break;
            }
            KeyManager.SetEnMacKey(SectionName, EMackey);
            KeyManager.SetEnPinKey(SectionName, EPinkey);
            KeyManager.SetEnTraKey(SectionName, ETrakey);
            //Log.Debug("MackeyEn:" + Utility.bcd2str(EMackey, EMackey.Length));
            //Log.Debug("PinkeyEn:" + Utility.bcd2str(EPinkey, EPinkey.Length));

            byte[] PinKey = null, WorkKey = null, TraKey = null;
            if (EnType == EncryptType.Soft)
            {
                var MasterKey = GetSoftMasterKey();
                if (DType == DesType.Des)
                {
                    PinKey  = Encrypt.DESDecrypt(EPinkey, MasterKey);
                    WorkKey = Encrypt.DESDecrypt(EMackey, MasterKey);
                    TraKey  = Encrypt.DESDecrypt(ETrakey, MasterKey);
                }
                else if (DType == DesType.TripleDes)
                {
                    PinKey  = Encrypt.DES3Decrypt(EPinkey, MasterKey);
                    WorkKey = Encrypt.DES3Decrypt(EMackey, MasterKey);
                    TraKey  = Encrypt.DES3Decrypt(ETrakey, MasterKey);
                }
            }
            else
            {
                PinKey  = new byte[KeyLength];
                WorkKey = new byte[KeyLength];
                TraKey  = new byte[KeyLength];
                Esam.SetWorkmode(Esam.WorkMode.Encrypt);

                Esam.UserDecrypt(GetKeyIndex(), EPinkey, KeyLength, PinKey);
                Esam.UserDecrypt(GetKeyIndex(), EMackey, KeyLength, WorkKey);
                Esam.UserDecrypt(GetKeyIndex(), ETrakey, KeyLength, TraKey);
                Esam.SetWorkmode(Esam.WorkMode.Default);
            }
            KeyManager.SetDeMacKey(SectionName, WorkKey);
            KeyManager.SetDePinKey(SectionName, PinKey);
            KeyManager.SetDeTraKey(SectionName, TraKey);

            if (!CheckKeyValue())
            {
                SetResult(TransResult.E_KEYVERIFY_FAIL);
            }
            else
            {
                ////更新当前机器时间
                //var year = DateTime.Now.Year;
                //var month = Convert.ToInt32(date.Substring(0, 2));
                //var day = Convert.ToInt32(date.Substring(2, 2));
                //var hour = Convert.ToInt32(time.Substring(0, 2));
                //var mi = Convert.ToInt32(time.Substring(2, 2));
                //var ss = Convert.ToInt32(time.Substring(4, 2));
            }
        }
示例#6
0
文件: CCBPay.cs 项目: lijint/DHRQ
        protected void DoSignInSucc()
        {
            string time = RecvPackage.GetString(12); //时间
            string date = RecvPackage.GetString(13); //日期

            //SetBatchNo(RecvPackage.GetString(37).Substring(2, 6));//记录批次号

            byte[] bField60 = new byte[0];
            bField60 = Utility.str2Bcd(RecvPackage.GetString(60));
            //bField60 = RecvPackage.GetArrayData(60);
            byte[] EPinkey = new byte[KeyLength];
            byte[] EMackey = new byte[KeyLength];
            Array.Copy(bField60, 0, EPinkey, 0, KeyLength);
            Array.Copy(bField60, 8, EMackey, 0, KeyLength);
            KeyManager.SetEnMacKey(SectionName, EMackey);
            KeyManager.SetEnPinKey(SectionName, EPinkey);
            byte[] bTerminalNo = Encoding.Default.GetBytes(GetTerminalNo());

            byte[] PinKey = null, WorkKey = null;
            if (EnType == EncryptType.Soft)
            {
                byte[] MasterKey = GetSoftMasterKey();
                if (DType == DesType.Des)
                {
                    byte[] EPinkeytmp = EPinkey;
                    byte[] EMackeytmp = EMackey;

                    byte[] tmp = Encrypt.DESEncrypt(EPinkeytmp, MasterKey);
                    PinKey = Encrypt.DESDecrypt(tmp, bTerminalNo);

                    tmp     = Encrypt.DESEncrypt(EMackeytmp, MasterKey);
                    WorkKey = Encrypt.DESDecrypt(tmp, bTerminalNo);
                }
                else if (DType == DesType.TripleDes)
                {
                    PinKey  = Encrypt.DES3Decrypt(EPinkey, MasterKey);
                    WorkKey = Encrypt.DES3Decrypt(EMackey, MasterKey);
                }
            }
            else
            {
                PinKey  = new byte[KeyLength];
                WorkKey = new byte[KeyLength];
                Esam.SetWorkmode(Esam.WorkMode.Encrypt);

                byte[] tempkey = new byte[8];

                Esam.UserEncrypt(GetKeyIndex(), EPinkey, KeyLength, tempkey);
                //Esam.Encrypt(EPinkey, 8, tempkey);
                PinKey = Encrypt.DESDecrypt(tempkey, bTerminalNo);

                Esam.UserEncrypt(GetKeyIndex(), EMackey, KeyLength, tempkey);
                //Esam.Encrypt(EMackey, 8, tempkey);
                WorkKey = Encrypt.DESDecrypt(tempkey, bTerminalNo);

                Esam.SetWorkmode(Esam.WorkMode.Default);
            }
            KeyManager.SetDeMacKey(SectionName, WorkKey);
            KeyManager.SetDePinKey(SectionName, PinKey);
            Log.Info("download pinKey:" + Utility.bcd2str(PinKey, PinKey.Length));
            Log.Info("download macKey:" + Utility.bcd2str(WorkKey, WorkKey.Length));
            //更新当前机器时间
            int      year  = System.DateTime.Now.Year;
            int      month = Convert.ToInt32(date.Substring(4, 2));
            int      day   = Convert.ToInt32(date.Substring(6, 2));
            int      hour  = Convert.ToInt32(time.Substring(0, 2));
            int      mi    = Convert.ToInt32(time.Substring(2, 2));
            int      ss    = Convert.ToInt32(time.Substring(4, 2));
            DateTime newDt = new DateTime(year, month, day, hour, mi, ss);

#if !DEBUG
            Utility.SetSysTime(newDt);
#endif
//            }
        }