亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pwdkey.cpp

?? 一個密碼小鍵盤的封裝的動態庫
?? CPP
字號:
// PwdKey.cpp : implementation file
//

#include "stdafx.h"
#include "PwdKey.h"
#include "des.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define __JKP521__
//#define __NLK830__

/////////////////////////////////////////////////////////////////////////////
// CPwdKey

static usgc omk[32] = "88888888";
static usgc nmk[32] = "\x3C\x2E\x47\x8D\x1A\xB8\x73\x39";  // new main key


#ifdef __NLK830__

static usgc nuk[32] = "\x8D\x22\x53\xD6\x8C\x1E\xF3\x7A";  // new user key

static char act00[] = "\x1b\x41\x00\x00\x0d\x0a";			//激活用戶0號密鑰
//static char inmsg[] = "\x1b\x46\x30\x0d\x0a";				//打開小鍵盤,提示輸入
static char inmsg[] = "\x1b\x46\x34\x0d\x0a";				//打開小鍵盤,提示輸入
static char rstz[] = "\x1B\x43\x0D\x0A";					//關閉小鍵盤
static char clsctr[] = "\x1b\x52\x00\x00\x0d\x0a";			//清除用戶0號密鑰

#else
#ifdef __JKP521__
static usgc nuk[32] = "\x35\x39\x3A\x33\x36\x38\x37\x32";  // new user key
static char act00[] = "\x1b\x41\x00\x00\x0d\x0a";			//激活用戶0號密鑰
static char inmsg[] = "\x1b\x46\x30\x31\x0d\x0a";			//打開小鍵盤,提示輸入
static char rstz[] = "\x1B\x5B\x2F\x33\x0D\x0A";			//關閉小鍵盤

static char clsctr[] = "\x1b\x52\x0d\x0a";					//清除用戶0號密鑰

#endif
#endif

char aschex1(char chr)
{
	if (chr>='0' && chr<='9')
		return chr-'0';
	if (chr>='A' && chr<='F')
		return chr-'A'+10;
    return 0;
}

//十六進制數->可見字符
char hexasc1(char hex)
{
	if (hex < 10)
		return hex+'0';
	if (hex < 16)
		return hex-10+'A';
	return ' ';
}

//十六進制->ASC碼
char *hexasc2(int len, char *src, char *dst)
{
    int i;
    char ch1, ch2;
    for (i=0; i<len; i++)
    {
        ch1 = src[i];
        ch2 = ch1 & 0x0F;
        ch1 = (ch1 >> 4) & 0x0F;
        dst[i*2] = hexasc1(ch1);
        dst[i*2+1] = hexasc1(ch2);
    }
    return dst;
}

//ASC碼->十六進制
char * aschex2(int len, char *src, char *dst)
{
    int i;
    char ch1, ch2;
    for (i=0; i<len; i++)
    {
        ch1 = src[i*2];
        ch2 = src[i*2+1];
        dst[i] = ((aschex1(ch1)<<4)&0xF0) | aschex1(ch2);
    }
    return dst;
}

CPwdKey::CPwdKey()
{
}

CPwdKey::~CPwdKey()
{
}


/////////////////////////////////////////////////////////////////////////////
// CPwdKey message handlers

int CPwdKey::Init(char *strComPort, int nBaudRate)
{
	char scom[12];
	pk_flg = 3;
	if (m_pCom.IsOpened())
		m_pCom.Close();
	strcpy(scom, strComPort);
	*(scom+3) = 0;
	if (stricmp(scom, "COM"))
		return 0;
	//	1200,N,8,1
	return m_pCom.Open(atoi(strComPort+3), 1200);
}

int CPwdKey::IgnoreRespone(int nCount, unsigned long nTmOut)
{
	int i = 0;
	unsigned long t0;
	char cmd[12] = "\0";
	t0 = GetTickCount();
	nTmOut = nTmOut/2;
	Sleep(nTmOut);
	while (i < nCount)
	{
		if (m_pCom.Read(cmd, 1) == 1)
		{
			i++;
			Sleep(10);
			continue;
		}
		if (GetTickCount()-t0 > nTmOut)
			break;
		Sleep(50);
	}
	return (usgc)*cmd;
}

void CPwdKey::expmk(usgc *mk, usgc *mkdst)
{
    int i, nbb=0x41;
    usgc c1, c2;
#ifdef __NLK830__
	nbb = 0x41;
#endif
#ifdef __JKP521__
	nbb = 0x30;
#endif
    for (i=0; i<8; i++) 
	{
        c1 = (mk[i]>>4)&0x0F;
        c2 = mk[i]&0x0F;
        mkdst[i*2] = c1+nbb;
        mkdst[i*2+1] = c2+nbb;
    }
    mkdst[16] = 0;
}



int CPwdKey::OpenKey(int nCommand)
{
	pk_flg = 3;
	if (!m_pCom.IsOpened())
		return 0;
    m_pCom.Write(act00, 6);
	IgnoreRespone(2, 100);
#ifdef __NLK830__
	m_pCom.Write(inmsg, 5);
#endif
#ifdef __JKP521__
	m_pCom.Write(inmsg, 6);
#endif
	IgnoreRespone(2, 200);
	pk_flg = 0;
	return 1;
}

int CPwdKey::CloseKey(int nCommand)
{
	pk_flg = 3;
	if (!m_pCom.IsOpened())
		return 0;
#ifdef __NLK830__
	m_pCom.Write(rstz, 4);
#endif
#ifdef __JKP521__
	m_pCom.Write(rstz, 6);
#endif
	IgnoreRespone(2, 200);
	return 1;
}

int CPwdKey::GetData(char *dst)
{
    int i, nbb=0x41;
	char ch, tmp[2];
	usgc ch1, ch2;
/*
	usgc kkkk[] = {0x39,0x3c,0x35,0x30,0x39,0x3f,0x35,0x3d,0x3d,0x3a,0x33,0x30,0x34,0x32,0x31,0x39};
	for (i=0; i<16; i++)
		pk_buf[i] = kkkk[i];
	nbb = 0x30;
	for (i=0; i<8; i++)
	{
		ch = (((usgc)pk_buf[i*2]-nbb)<<4)|((usgc)pk_buf[i*2+1]-nbb);
		dst[i] = ch;
	}
    DESFunc((usgc *)"00000000", (usgc *)dst, -1);
*/
#ifdef __NLK830__
	nbb = 0x41;
#endif
#ifdef __JKP521__
	nbb = 0x30;
#endif
	if (pk_flg != 5)
		*dst = 0;
	if (!m_pCom.IsOpened())
		return -1;
	while (1)
	{
		i = m_pCom.Read(tmp, 1);
		if (i < 1)
			return i;
		ch = *tmp;
		if (pk_flg == 0)
		{
			if (ch != 0x02)
				continue;
			pk_flg = 1;
			continue;
		}
#ifdef __NLK830__
		if (pk_flg == 1) 
		{
			pk_cnt = (int)ch-1;
			pk_cid = 0;
			pk_flg = 2;
			continue;
		}
		if (pk_flg != 2)
			return -1;
#endif
#ifdef __JKP521__
		if (pk_flg == 1)
		{
			ch1 = ch;
			pk_flg = 2;
			continue;
		}
		if (pk_flg == 2) 
		{
			ch2 = ch-nbb;
			ch1 = (ch1-nbb)<<4;
			pk_cnt = ch1|ch2;
			pk_cid = 0;
			pk_flg = 8;
			continue;
		}
		if (pk_flg != 8)
			return -1;
#endif
		if (pk_cid < 16) 
		{
			pk_buf[pk_cid] = ch;
		}
		if ((pk_cid++) < pk_cnt)
			continue;
		break;
	}
    pk_flg = 5;
#ifdef __NLK830__
    aschex2(8, (char *)pk_buf, (char *)dst);
#endif
#ifdef __JKP521__
	for (i=0; i<8; i++)
	{
		ch = (((usgc)pk_buf[i*2]-nbb)<<4)|((usgc)pk_buf[i*2+1]-nbb);
		dst[i] = ch;
	}
#endif
    DESFunc((usgc *)nuk, (usgc *)dst, -1);
    if (pk_cnt > 16)
       memcpy(dst, "gj;19p", 6);
    dst[6] = 0;	
	return 1;
}

int CPwdKey::IsReaded()
{
	if (pk_flg == 5)
		return 1;
	return 0;
}

int CPwdKey::ClearKey()
{
	if (!m_pCom.IsOpened())
		return 0;
#ifdef __NLK830__
	m_pCom.Write(clsctr, 6);
#endif
#ifdef __JKP521__
	m_pCom.Write(clsctr, 4);
#endif
	IgnoreRespone(2, 200);
	return 1;
}

int CPwdKey::FindKey(char *strComPort)
{
	int i, cnt=2;
	char strcomlst[][6] = {"COM1", "COM2"};
//	char kkk[66];
//	GetData(kkk);
//	return false;
	if (strComPort && *strComPort)
		cnt = 1;
	for (i=0; i<cnt; i++)
	{
		if (strComPort && *strComPort)
			strcpy(m_strComPort, strComPort);
		else
			strcpy(m_strComPort, strcomlst[i]);
		strupr(m_strComPort);
		if (!Init(m_strComPort, 1200))
			continue;
		if (m_pCom.Write(act00, 6) > 0)
		{
			if (IgnoreRespone(2, 300) == 0xAA)
				return true;
			Reset();
		}
		else
		{
			Reset();
		}
	}
	return false;
}


int CPwdKey::UpdateKey(char *strOldKey, char *strMainKey, char *strUserKey)
{
	int nlen = 16;
    char cmd[256];
	char tmp[48];
	if (!m_pCom.IsOpened())
		return 0;
#ifdef __NLK830__
	m_pCom.Write(clsctr, 6);
	IgnoreRespone(2, 200);
    memcpy(cmd, "\x1B\x55\x00\x00", 4);
	expmk(omk, (usgc *)tmp);
	if (strOldKey && *strOldKey)
		expmk((usgc *)strOldKey, (usgc *)tmp);
    memcpy(cmd+4, tmp, nlen);
	expmk(nuk, (usgc *)tmp);
	if (strUserKey && *strUserKey)
		expmk((usgc *)strUserKey, (usgc *)tmp);
    memcpy(cmd+4+nlen, tmp, nlen);
    memcpy(cmd+4+nlen+nlen, "\x0d\x0a", 2);
    m_pCom.Write(cmd, 4+nlen*2+2);
	IgnoreRespone(2, 200);
#endif
#ifdef __JKP521__
	m_pCom.Write(clsctr, 4);
	IgnoreRespone(2, 200);
/*	//先修改主密鑰
	memcpy(cmd, "\x1B\x4D\x00", 3);
	memcpy(cmd+3, strOldKey, 8);
	memcpy(cmd+3+8, strMainKey, 8);
	memcpy(cmd+3+8+8, "\x0D\x0A", 2);
    m_pCom.Write(cmd, 3+8+8+2);
	IgnoreRespone(2, 200);
*/
	//修改用戶密鑰
	memcpy(cmd, "\x1B\x53\x00\x00", 4);
	memcpy((usgc *)tmp, nuk, 8);
	if (strUserKey && *strUserKey)
		memcpy((usgc *)tmp, (usgc *)strUserKey, 8);
	DESFunc((usgc *)"88888888", (usgc *)tmp, 1);
	memcpy(cmd+4, tmp, 8);
	memcpy(cmd+4+8, "\x0D\x0A", 2);
    m_pCom.Write(cmd, 4+8+2);
	IgnoreRespone(2, 400);
#endif
	memcpy(cmd, act00, 6);
	m_pCom.Write(cmd, 6);
	IgnoreRespone(2, 400);
	return 1;
}


int CPwdKey::Reset()
{
	pk_flg = 3;
	if (m_pCom.IsOpened())
		m_pCom.Close();
	return 0;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本三级亚洲精品| 欧美一区二区三区四区在线观看| 色视频成人在线观看免| 精品国产一区二区亚洲人成毛片| 亚洲三级电影网站| 国产乱码精品一区二区三区五月婷| 色狠狠综合天天综合综合| 26uuu亚洲| 麻豆精品视频在线| 欧美日韩国产不卡| 亚洲综合无码一区二区| 国产成人免费视频一区| 91精品婷婷国产综合久久竹菊| 亚洲欧美综合在线精品| 国产精品资源在线看| 欧美嫩在线观看| 亚洲图片欧美综合| 色婷婷精品久久二区二区蜜臂av | 国产欧美精品一区| 免费观看30秒视频久久| 欧美伊人久久大香线蕉综合69| 国产精品久久精品日日| 狠狠色伊人亚洲综合成人| 欧美一级片在线看| 免费观看在线综合色| 欧美日韩一区二区三区在线看 | 久久久久久久久久久久久久久99| 婷婷综合五月天| 欧美日韩一区二区三区免费看| 中文字幕一区二区日韩精品绯色| 国产·精品毛片| 日本一区二区三区电影| 国产精品一区二区三区四区| 久久久久久久精| 国产91在线观看丝袜| 一区二区三区免费观看| 色天天综合色天天久久| 亚洲国产一区二区三区青草影视| 欧美色区777第一页| 偷拍自拍另类欧美| 日韩三级视频中文字幕| 黑人精品欧美一区二区蜜桃| 久久久久久久综合| av资源网一区| 亚洲综合免费观看高清完整版在线| 欧美日韩视频在线第一区 | 成人激情黄色小说| 国产精品成人一区二区艾草| av影院午夜一区| 亚洲综合无码一区二区| 91精品婷婷国产综合久久 | 91日韩在线专区| 亚洲综合久久久久| 日韩一级视频免费观看在线| 激情久久久久久久久久久久久久久久| 国产香蕉久久精品综合网| 波多野洁衣一区| 五月天中文字幕一区二区| 2020国产精品久久精品美国| 粉嫩aⅴ一区二区三区四区| 一区二区三区四区不卡在线| 欧美精品一卡两卡| 丁香六月综合激情| 天堂精品中文字幕在线| 国产午夜亚洲精品午夜鲁丝片| 91亚洲资源网| 久久电影国产免费久久电影| 欧美国产欧美亚州国产日韩mv天天看完整| 91在线精品秘密一区二区| 天堂成人国产精品一区| 日本一区二区三区电影| 666欧美在线视频| a在线播放不卡| 日本aⅴ亚洲精品中文乱码| 国产精品乱码久久久久久| 欧美另类变人与禽xxxxx| 粉嫩蜜臀av国产精品网站| 性欧美大战久久久久久久久| 日本一区二区久久| 91麻豆精品国产自产在线观看一区| 国产成人av影院| 日本不卡一区二区三区| 亚洲欧美日韩国产中文在线| 日韩一级完整毛片| 欧美在线一区二区三区| 国产精品一二二区| 蜜臀av一区二区在线免费观看| 亚洲美女免费视频| 久久久久久久综合色一本| 欧美日韩国产高清一区二区| 成人avav影音| 国产91对白在线观看九色| 蜜桃一区二区三区在线| 亚洲成在人线免费| 亚洲激情自拍偷拍| 自拍偷拍亚洲欧美日韩| 一区二区视频免费在线观看| 国产女主播在线一区二区| 精品福利二区三区| 日韩欧美一区二区三区在线| 欧美唯美清纯偷拍| 在线视频欧美区| 91视视频在线观看入口直接观看www| 国内精品免费**视频| 美女精品一区二区| 麻豆成人91精品二区三区| 婷婷国产在线综合| 无码av免费一区二区三区试看| 伊人色综合久久天天人手人婷| 亚洲欧美日韩一区| 亚洲精品国产品国语在线app| 国产精品超碰97尤物18| 国产精品女人毛片| 亚洲欧洲日韩女同| 亚洲色欲色欲www在线观看| 亚洲色图丝袜美腿| 一区二区三区在线观看视频| 亚洲免费伊人电影| 亚洲图片欧美一区| 日韩精品国产欧美| 美女视频黄久久| 国产呦萝稀缺另类资源| 国产乱人伦偷精品视频免下载| 国产精品一区免费视频| 成人午夜又粗又硬又大| 91老师片黄在线观看| 91久久国产综合久久| 欧美精品日韩一本| 26uuu色噜噜精品一区二区| 国产欧美日韩在线| 一区二区三区精品在线观看| 亚洲3atv精品一区二区三区| 免费成人在线播放| 国产91丝袜在线播放九色| av在线播放一区二区三区| 欧美日韩中文字幕一区二区| 在线观看91av| 国产亚洲精品福利| 亚洲在线视频免费观看| 毛片一区二区三区| www.亚洲在线| 在线不卡的av| 中文字幕va一区二区三区| 亚洲综合色丁香婷婷六月图片| 免费国产亚洲视频| av一区二区久久| 日韩一区和二区| 亚洲欧洲国产日本综合| 男女性色大片免费观看一区二区| 国产乱人伦偷精品视频不卡 | 欧洲av一区二区嗯嗯嗯啊| 91精品中文字幕一区二区三区| 26uuu国产一区二区三区| 国产精品国产三级国产专播品爱网 | 国产99久久久国产精品| 欧美日韩一区 二区 三区 久久精品 | 中文字幕国产精品一区二区| 亚洲一区二区成人在线观看| 国产乱码一区二区三区| 欧洲日韩一区二区三区| 精品va天堂亚洲国产| 亚洲免费av高清| 韩国欧美国产一区| 欧美日韩精品二区第二页| 国产欧美日韩精品在线| 亚洲444eee在线观看| av一区二区久久| 久久婷婷成人综合色| 亚洲第一福利一区| 成人黄色网址在线观看| 欧美xingq一区二区| 亚洲一区视频在线观看视频| 国产精品一区二区免费不卡| 欧美猛男gaygay网站| 国产精品卡一卡二卡三| 国产在线精品一区在线观看麻豆| 在线视频一区二区三| 亚洲欧美自拍偷拍色图| 国产精品中文字幕欧美| 欧美一级一级性生活免费录像| 亚洲人xxxx| www.激情成人| 久久精品免费在线观看| 久久综合综合久久综合| 7777精品久久久大香线蕉| 一区二区在线电影| 色综合久久中文字幕综合网| 日本一区二区三区四区在线视频| 日本少妇一区二区| 日韩一级免费观看| 免费成人av在线| 欧美大片在线观看一区| 蜜桃精品视频在线| 精品少妇一区二区三区视频免付费| 亚洲成人www| 欧美一区二区网站| 日韩不卡一区二区三区| 67194成人在线观看| 日韩不卡一二三区| 精品三级在线看|