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

📄 encrypt.c

📁 汽车防盗器源程序
💻 C
字号:
#define __DEFINE_REGISTERS_STVD7_INCLUDE__
#include "ST72324BLK2.h"
#undef  __DEFINE_REGISTERS_STVD7_INCLUDE__
#define asm_nop() _asm ("nop\n")


unsigned int long  TMKey= 0x1A3B47E3;
unsigned int long  RMKey= 0XC7E2DC58;

unsigned char NLFOUT(unsigned int long code);
unsigned char Sample2Bit(unsigned int long code);

void encrypt(unsigned long int outdata)
{
    unsigned char i=0,j=32,temp;
		unsigned int long temp1;
		temp1=outdata;
		
while(temp1++)
  {
		outdata=temp1;
    temp=(unsigned char)outdata + (unsigned char)(outdata>>8)+ (unsigned char)(outdata>>16);		
    outdata+=((unsigned int long)(temp)<<24);	
		j=32;
		while(j--)
		{
		i=NLFOUT(outdata)^(((unsigned char)TMKey)&0x01)^Sample2Bit(outdata);
		outdata<<=1;
		outdata|=i;
		TMKey>>=1;
	  }
    asm_nop();

    j=32;
		while(j--)
		{
		temp=(unsigned char)(outdata)& 0x01;
		outdata>>=1;
		i=NLFOUT(outdata)^((unsigned char)RMKey&0x01)^((unsigned char)(outdata>>16)&0x01)^temp;
		RMKey>>=1;
		if(i) outdata|=0x80000000;
	  }	
		asm_nop();		
 }		
}


unsigned char NLFOUT(unsigned int long code)
{
	unsigned char i=0,j;
	unsigned int long  temp=0x3e57ba6c;
	for(j=0;j<4;j++)
	{
	i|=((unsigned char)(code>>=6)&0x01);
	i<<=1;
  }
	i|=((unsigned char)(code>>=6)&0x01);
  return ((temp>>i)&0x01);
}

unsigned char Sample2Bit(unsigned int long code)
{
	unsigned char i;
	i=((unsigned char)(code>>31)& 0x01)^((unsigned char)(code>>16)&0x01);
	return (i);
	
}	



⌨️ 快捷键说明

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