?? pass.c
字號:
#include "pass.h"static char HexArray[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};/***************************Encode132***********//* Future: 將一個字符串按一定算法進行加密 *//* Input: char *sIn: 要加密的字符串 *//* 每個字符會產生3位 *//* Output: char *sOut: 加密后的字符串 *//* ********************************************/ void Encode132(char *sIn,char *sOut){ int iRan,iPos; unsigned i; char bAscii,bTemp; char Result[100]; if(strlen(sIn)==0) { strcpy(sOut,""); return; } memset(Result,0,100); srand(time(NULL)); iRan=rand()%4; iPos=0; for(i=0;i<strlen(sIn);i++) { bAscii=sIn[i]; bTemp=bAscii; bTemp=bTemp >> 5; //取第5高位 Result[iPos++]=HexArray[bTemp]; bTemp=bAscii; bTemp=(bTemp & 0x1C) >> 2; /* 1C是11100,再右移2位,即取中間3位*/ Result[iPos++]=HexArray[bTemp]; bTemp=bAscii; bTemp=bTemp & 3; /* 3是0x11,即取最后2位*/ bTemp=iRan*4+bTemp; //雖然加了隨機數,由于*4,即是加在第3位上,所以不影響,僅起迷惑作用。 Result[iPos++]=HexArray[bTemp]; } Result[iPos++]=iRan+0x30; //最后再加一位迷惑位 Result[iPos]='\0'; strcpy(sOut,Result);}/***************************Decode132***********//* Future: 將一個字符串按一定算法進行加密 *//* Input: char *sIn: 要解密的字符串 *//* Output: char *sOut: 解密后的字符串 *//* ********************************************/void Decode132(char *sIn,char *sOut){ unsigned i,j,iPos; char bAscii; char Result[100]; if (strlen(sIn)<4) { strcpy(sOut,""); return; } i=0; memset(Result,0,100); iPos=0; while (1) { j=0; while (1) { if (sIn[i+2]==HexArray[j]) break; j++; if (j>=16) { strcpy(sOut,""); return; } } bAscii=(sIn[i]-0x30)*32+(sIn[i+1]-0x30)*4+(j & 3); Result[iPos++]=bAscii; i+=3; if ((i+1)>=strlen(sIn)) break; } Result[iPos]='\0'; strcpy(sOut,Result);}/***************************LicenseCheck*******//* Future: 判斷一個可執行程序是否經過許可認證 *//* Input: char *strProgramName: 程序名 *//* Return: -1: 程序名.key 文件不存在
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -