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

📄 rc6-32.c

📁 此程序用来实现32位数据在单片机上的算法
💻 C
字号:
//定义32位变量

#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint  unsigned int

sbit BEEP = P3^7;         //蜂鸣器驱动线

unsigned long code S[43] =  {0x05479d38, 0xe4a3e582, 0xfbcc7a4b, 0xe878faa4, 
														 0x8ed14980, 0x5f5873fd, 0xaec05ae6, 0xaafffe1d,
													   0x6bf8b7e3, 0x64e27682, 0x23c4d46f, 0xda521c4b, 
				                     0x662b9392, 0xc51ae971, 0xbe84587a, 0x473c1481, 
				                     0xab246684, 0xb9770047, 0x98327b6a, 0x529be229, 
				                     0xb992809a, 0x79c1fa56, 0x617cd18d, 0x1bcb9a08, 
				                     0x8babbbb3, 0x0dd061bd, 0x8c1ec8a2, 0x20f286d0, 
				                     0xfaf8eff4, 0x46b87c92, 0xc5096b01, 0xdbdcc9b0, 
				                     0xd1b212b4, 0xdd0f3d38, 0x27c02df3, 0x0fb21526, 
				                     0x46e0faa6, 0xe9d9748f, 0xe274fdcc, 0x09ae3f8e, 
				                     0x95f85e40, 0xa9f90a40, 0xf0e51469};

unsigned long code mingwen[4]={0x35241302, 0x79685746, 0xbdac9b8a, 0xf1e0dfce};//明文

unsigned long  miwen[4];     //用户密文表存放  {0x2f194e52, 0x23c61547, 0x36f6511f, 0x183fa47e}

void delay(unsigned char x)    //x*0.14MS
{
 unsigned char i;
  while(x--)
 {
  for (i = 0; i<13; i++) {}
 }
}

void beep()
{
  unsigned char i;
  for (i=0;i<100;i++)
   {
   delay(4);
   BEEP=!BEEP;                 //BEEP取反
   } 
  BEEP=1;                      //关闭蜂鸣器
}

void main()
{
  unsigned long A,Q,C,D,z,t,u;
  
  unsigned char i;
	A = mingwen[0];
	Q = mingwen[1];
	C = mingwen[2];
	D = mingwen[3];
	Q = Q + S[0];
	D = D + S[1];
	for (i= 1; i<= 20; i++)//循环左移位
	{
    t=_crol_((Q*(2*Q+1)),5);
    u=_crol_((D*(2*D+1)),5);	
    A=_crol_(A^t,t)+S[2*i];
    C=_crol_(C^u,u)+S[2*i];
		z = A;
		A = Q;
		Q = C;
		C = D;
		D = z;
	}
	A += S[42];
	C += S[43];
	miwen[0]= A;
	miwen[1]= Q;
	miwen[2]= C;
	miwen[3]= D;
  beep();
  while(1);
}

⌨️ 快捷键说明

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