📄 rc6-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 + -