📄 encrypt.c
字号:
/* 保存名字编辑框 */
static void Set_New_Editor(T_MFW_HND win)
{
T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data;
T_ENCRYPT_DATA *data = (T_ENCRYPT_DATA *)win_data->user;
memset((char*)data->name, 0, 11);
editor_attr_init_fullscr(&((data->edit_data).editor_attr), 1,TxtSmsEnterNumber, (char*)data->name, 11, edtCurBar1);
data->edit_data.hide = FALSE;
data->edit_data.min_enter = 1; // Avoid returning empty strings
data->edit_data.Identifier = 0xFFFF ;
data->edit_data.TextString = NULL;
data->edit_data.timeout = FOREVER; // Avoid returning empty strings
data->edit_data.destroyEditor = TRUE;
data->edit_data.TextId = '\0';
data->edit_data.LeftSoftKey = TxtSoftConfirm;//comfirm
data->edit_data.AlternateLeftSoftKey = TxtNull;
data->edit_data.RightSoftKey = TxtDelete;
data->edit_data.mode = SHUZI_MODE;
data->edit_data.InputMode = SHUZI_INPUT_MODE;
}
void encrypt_main();
/* 保存编辑框回调函数 */
static void New_EditorCB( T_MFW_HND win,USHORT Identifier,UBYTE reason)
{
T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data;
T_ENCRYPT_DATA *data = (T_ENCRYPT_DATA *)win_data->user;
char test[100];
int status;
switch( reason )
{
case INFO_KCD_LEFT:
memset(encrypt_result,0,sizeof(encrypt_result));
memset(encrypt,0,sizeof(encrypt));
memset(key_input,0,sizeof(key_input));
memcpy(key_input,data->name, sizeof(key_input));
if(Encrypt_ffs.counter >= 100 || Encrypt_ffs.during_time > 1*3600)//shiheng 0605 modify
{
memset(encrypt, '0', sizeof(encrypt));
encrypt[16] = 0;
winShow(win);
return;
}
/*
if(Encrypt_ffs.counter == 0)
key_flash_long = Encrypt_ffs.a;
else if(Encrypt_ffs.counter == 1)
key_flash_long = Encrypt_ffs.b;
else if(Encrypt_ffs.counter == 2)
key_flash_long = Encrypt_ffs.c;
*///shiheng 0605 delete
key_flash_long = Encrypt_ffs.a;//shiheng 0605 add
memset(imei_temp,0,sizeof(imei_temp));
get_imei((char*)idle_data.imei);
memcpy(imei_temp,(char*)idle_data.imei,15);
memset(imei_front,0,sizeof(imei_front));
memset(imei_back,0,sizeof(imei_back));
encrypt_main();
Encrypt_ffs.counter++;
status = ffs_fwrite("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
winShow(win);
//Encrypt_Destroy (win);
break;
case INFO_KCD_RIGHT:
case INFO_KCD_HUP:
Encrypt_Destroy (win);
break;
}
}
//extern void encrypt_main();
long int key_input_long;
long int key_flash_long;
long int imei_front_long;
long int imei_back_long;
long int StringToNum(char *string1)
{
int i;
int stringLen;
long int temp_result=0;
stringLen=strlen(string1);
for(i=0;i<stringLen;i++)
{
temp_result=temp_result*10+(string1[i]-0x30);
}
return temp_result;
}
void NumToStr(unsigned int num)
{
long int num_1;
int num_2;
char char1;
char char2[15]={0};
int i=0;
while (num!=0)
{
num_1=num/10;
num_2=num%10;
char1=num_2+0x30;
char2[i]=char1;
i++;
num=num_1;
}
strcat(encrypt_result,char2);
}
void encrypt_main()
{
int i,j;
int key_input_len,key_input_total=0;
int imei_lenth,imei_total=0;
char temp_result[30];
char char_result[10];
key_input_len=strlen(key_input);
for(i=0;i<key_input_len;i++)
key_input_total=key_input_total+key_input[i]-0x30;
imei_lenth=strlen(imei_temp);
for(i=0;i<imei_lenth;i++)
imei_total=imei_total+imei_temp[i]-0x30;
key_input_long=StringToNum(key_input);
// key_flash_long=StringToNum(key_flash);
key_flash_long=key_input_long+key_flash_long;
for(i=0;i<7;i++)
imei_front[i]=imei_temp[i];
imei_front[7]='\0';
j=0;
for(i=7;i<15;i++)
{
imei_back[j]=imei_temp[i];
j++;
}
imei_back[8]='\0';
imei_front_long=StringToNum(imei_front);
imei_back_long= StringToNum(imei_back);
imei_front_long^=4323356;
imei_back_long^=98789032;
switch(key_input_total%9)
{
case 0 :
imei_front_long= imei_front_long>>0;
imei_back_long= imei_back_long<<4;
imei_front_long^=imei_back_long;
break;
case 1 :
imei_front_long= imei_front_long>>1;
imei_back_long= imei_back_long<<3;
imei_front_long^=imei_back_long;
break;
case 2 :
imei_front_long= imei_front_long>>2;
imei_back_long=imei_back_long<<2;
imei_front_long^=imei_back_long;
break;
case 3 :
imei_front_long= imei_front_long>>3;
imei_back_long=imei_back_long<<1;
imei_front_long^=imei_back_long;
break;
case 4 :
imei_front_long= imei_front_long<<4;
imei_back_long=imei_back_long>>0;
key_input_long=key_input_long>>1;
imei_front_long^=imei_back_long;
break;
case 5 :
imei_front_long= imei_front_long<<3;
imei_back_long=imei_back_long>>1;
key_input_long=key_input_long>>2;
imei_front_long^=imei_back_long;
break;
case 6 :
imei_front_long= imei_front_long<<2;
imei_back_long=imei_back_long>>2;
key_input_long=key_input_long>>3;
imei_front_long^=imei_back_long;
break;
case 7 :
imei_front_long= imei_front_long<<1;
imei_back_long=imei_back_long>>3;
key_flash_long=key_flash_long<<1;
imei_front_long^=imei_back_long;
break;
case 8 :
imei_front_long= imei_front_long<<0;
imei_back_long=imei_back_long>>4;
key_flash_long=key_flash_long<<2;
imei_front_long^=imei_back_long;
break;
default:
break;
}
imei_front_long=imei_front_long+key_flash_long;//shiheng 0601
if(key_input_long>key_flash_long)
{
key_input_long=key_input_long-key_flash_long+12345;
key_flash_long=key_flash_long+key_input_long+67890;
}
else if(key_input_long=key_flash_long)
{
key_input_long=key_input_long+12345;
key_flash_long=key_flash_long+67890;
}
else
{
key_input_long=key_input_long+key_flash_long+12345;
key_flash_long=key_flash_long-key_input_long+67890;
}
key_input_long^=key_flash_long;
key_flash_long&=key_input_long;
imei_front_long &=key_input_long;
imei_back_long |=key_flash_long;
if(key_input_long>key_flash_long)
{
key_input_long=key_input_long-(~key_flash_long);
key_flash_long=key_flash_long+key_input_long;
}
else
{
key_flash_long=key_flash_long-(~key_input_long);
key_input_long=key_input_long+key_flash_long;
}
imei_front_long^=key_input_long;
imei_back_long^=key_flash_long;
imei_front_long^=imei_back_long;
key_flash_long^=imei_back_long;
imei_front_long^=key_input_long;
switch(imei_total%4)
{
case 0 :
imei_front_long= imei_front_long<<0;
imei_back_long= imei_back_long>>4;
break;
case 1 :
imei_front_long= imei_front_long<<1;
imei_back_long= imei_back_long>>3;
break;
case 2 :
imei_front_long= imei_front_long<<2;
imei_back_long=imei_back_long>>2;
break;
case 3 :
imei_front_long= imei_front_long<<3;
imei_back_long=imei_back_long>>1;
break;
default:
break;
}
NumToStr((unsigned int)imei_front_long);
NumToStr((unsigned int)imei_back_long);
strncat(encrypt,encrypt_result,15);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -