?? test.cpp
字號(hào):
#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);*/
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -