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

📄 test.cpp

📁 tea 加密算法 qq使用的就是这个加密算法来 解决登陆问题
💻 CPP
字号:
#include <iostream>
using namespace std;

void code(long *v,long *k);
void decode(long *v,long *k);

int main()
{
/*
910B5AAB
ABC172F4
6131ABF3
A8D0B076

4893058C 
B310D680

41811AE0
D8923481

A722E9E5
E3020604

1783ECDA
CF1D4AB5 */



	long v1[2] = {0x4893058C, 0xB310D680};
	long v2[2] = {0x41811AE0, 0xD8923481};
	long v3[2] = {0xA722E9E5, 0xE3020604};
	long v4[2] = {0x1783ECDA, 0xCF1D4AB5};
	long k[4] = {0x910B5AAB, 0xABC172F4, 0x6131ABF3, 0xA8D0B076};
	//code(v,k);
	decode(v1,k);
	decode(v2,k);
	decode(v3,k);
	decode(v4,k);
	/*long v1[2] = {0xD8923481,0x41811AE0 };
	long v2[2] = {0xB310D680, 0x4893058C};
	long v3[2] = {0xA8D0B076 , 0x6131ABF3};
	long v4[2] = { 0xABC172F4,0x910B5AAB};

	long k[4] = {0xCF1D4AB5,0x1783ECDA,0xE3020604,0xA722E9E5 };
	
	decode(v1,k);
	decode(v2,k);
	decode(v3,k);
	decode(v4,k);*/
}

void code(long* v, long* k)					//k四位,v两位
{
	unsigned long y=v[0],z=v[1], sum=0,		/* set up */
		delta=0x9e3779b9, n=16 ;			/* a key schedule constant */
	while (n-->0) 
	{										/* basic cycle start */
		sum += delta ;
		y += ((z<<4)+k[0]) ^ (z+sum) ^ ((z>>5)+k[1]) ;
		z += ((y<<4)+k[2]) ^ (y+sum) ^ ((y>>5)+k[3]) ;	/* end cycle */
	} 
	v[0]=y ; 
	printf("y: %x\n",y);
	v[1]=z ; 
	cout<<"z:"<<hex<<z<<endl;
}

void decode(long* v,long* k)
{
	unsigned long n=16, sum, y=v[0], z=v[1],delta=0x9e3779b9 ;
	if(n==16) sum = delta<<4;
	if(n==32) sum = delta<<5 ;							
	while (n-->0) {

		z-= (y<<4)+k[2] ^ y+sum ^ (y>>5)+k[3] ; 
		y-= (z<<4)+k[0] ^ z+sum ^ (z>>5)+k[1] ;
		sum-=delta ;  
	}										/* end cycle */
	v[0]=y ; 
	v[1]=z ;
	/*cout<<(char)117<<endl;
	cout<<(char)((y&(0xff000000))>>24);
	cout<<(char)((y&(0x00ff0000))>>16);
	cout<<(char)((y&(0x0000ff00))>>8);
	cout<<(char)((y&(0x000000ff))>>0);
	cout<<(char)((z&(0xff000000))>>24);
	cout<<(char)((z&(0x00ff0000))>>16);
	cout<<(char)((z&(0x0000ff00))>>8);
	cout<<(char)((z&(0x000000ff))>>0);*/
}

⌨️ 快捷键说明

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