电子产品世界 » 论坛首页 » 嵌入式开发 » ARM » atmel studio数组问题


共9条 1/1 1 跳转至

atmel studio数组问题

菜鸟
2014-11-12 16:25:57    评分
 void  main()
{
//UART1_Init();
unsigned long plainbuffer[2];
unsigned long testbuffer[4];
unsigned long plain[2]={0x23FF28AA,0x23FF28AA};
unsigned long test[4]={0x01122334,0x45566778,0x899AABBC,0xCDDEEFF0};
unsigned long key[4]={0x01234567,0x89ABCDEF,0x01234567,0x89ABCDEF};

while(1)
{

memcpy(plainbuffer,plain,8);
memcpy(testbuffer,test,16);
tea_encrypt(plainbuffer,key);
tea_decrypt(plainbuffer,key);


}
}

 void tea_encrypt(unsigned long *v, unsigned long* k)
 {
 unsigned long v0=v[0], v1=v[1], sum=0, i;
 unsigned long delta=0x9e3779b9;
 unsigned long k0=k[0], k1=k[1], k2=k[2], k3=k[3];
 for (i=31; i < 32; i++)
 {
 sum += delta;
 v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
 v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
 }
 v[0]=v0; v[1]=v1;
 }

这个为什么key数组穿不进函数里面?进去后k0,1,2,3全是0 



关键词: AVR     数组     studio     atmel    

高工
2014-11-12 17:04:41    评分
2楼
感觉有点诡异,理论上不应该都是0啊,楼主是怎么看的都是0啊

菜鸟
2014-11-12 17:06:41    评分
3楼
仿真,看到的

菜鸟
2014-11-12 17:07:03    评分
4楼
仿真看到的

专家
2014-11-12 17:54:10    评分
5楼
v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1); 什么意思?

专家
2014-11-12 18:42:02    评分
6楼
头文件没有包含进去?

菜鸟
2014-11-12 22:12:01    评分
7楼
那个是一个算法,就是给数据加密用的,头文件也包含进去了,就是数组传到函数里就出错

专家
2014-11-13 08:38:08    评分
8楼

方便工程发我下,我给你试试

majunling606@163.com


高工
2014-11-13 21:45:03    评分
9楼
试试K0=*(k+0);K1=*(K+1)...

共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]