论坛风格切换切换到宽版
  • 13921阅读
  • 28回复

花了一个小时才追到的函数,APRS五位验证码的秘密,能看懂的就自己算吧 [复制链接]

上一主题 下一主题
离线bg8bin
 
发帖
720
只看楼主 倒序阅读 0楼 发表于: 2012-01-15
short dohash(const char* thecall)
{
  char rootcall[10];     // need to copy call to remove ssid from parse
  char *p1 = rootcall;

  while ((*thecall != '-') && (*thecall != 0)) *p1++ = toupper(*thecall++);
    *p1 = 0;

  short hash = kkey;     // initialize with the key value
  short i = 0;
  short len = strlen(rootcall);
  char *ptr = rootcall;
 
  while (i < len) {         // loop through the string two bytes at a time
    hash ^= (*ptr++)<<8;   // xor high byte with accumulated hash
    hash ^= (*ptr++);     // xor low byte with accumulated hash
    i += 2;
  }
  return hash & 0x7fff;     // mask off the high bit so number is always positive
}
离线bd8te
发帖
4258
只看该作者 1楼 发表于: 2012-01-15
不懂   能具体点说说嘛
离线BA7CK
发帖
76409
只看该作者 2楼 发表于: 2012-01-15
'
short dohash(const char* thecall)
{
  char rootcall[10];     // need to copy call to remove ssid from parse
  char *p1 = rootcall;
  while ((*thecall != '-') && (*thecall != 0)) *p1++ = toupper(*thecall++);
    *p1 = 0;
  short hash = kkey;     // initialize with the key value
  short i = 0;
  short len = strlen(rootcall);
  char *ptr = rootcall;
 
  while (i < len) {         // loop through the string two bytes at a time
    hash ^= (*ptr++)<<8;   // xor high byte with accumulated hash
    hash ^= (*ptr++);     // xor low byte with accumulated hash
    i += 2;
  }
  return hash & 0x7fff;     // mask off the high bit so number is always positive
}
[表情]
'
离线bg8bin
发帖
720
只看该作者 3楼 发表于: 2012-01-15
就是aprs服务器接口的验证码的算法。比如igate的网络端等需要进行互联网连接aprs服务器进行数据发送时,服务器会验证发送或转发者呼号是否经过aprs服务管理人员的5位数字认证码(aprs系统设定的途径是把自己的呼号发送给aprs服务器管理人员,核对后你的身份后返回论证码给你)。平常我们在电脑上或是在智能手机上使用aprs软件时,一般情况下都要求你输入此验证码。服务器收到数据后会计算出5位验证码和你提供的验证码进行比对,正确才会进行数据转发。

发这个函数也只是研究一下系统的安全运作,共同学习一下。 大家就不要做成能直接运行的程序了,以示对aprs服务器贡献者的尊敬
离线bg8bin
发帖
720
只看该作者 4楼 发表于: 2012-01-15
这个是必须要的

#define kkey 0x73e2            // this is the key for the data
离线BG3OGR
发帖
3565
只看该作者 5楼 发表于: 2012-01-15
最初,是自愿向当地的癌症研究机构捐款,通过电子邮件从授权人获取验证码
后来,论坛有几个人可以帮助ham计算
再后来,计算源代码公开
到最后,人人都可能随意编几个呼号,自己计算验证码。

我预感:有一天,aprs服务器可能会封杀所有b电台,到时候谁也别玩!就像arriss封杀中国一样,不同的是arriss疑似政客们斗争的延续,而aprs封杀b电台则是ham自己造成的。
立此存证!
离线BH1IEO
发帖
4250
只看该作者 6楼 发表于: 2012-01-15
同意楼上的看法,自己会了就得,不宜公开。万一楼主的本意被整斜了就有乐子看了。 就像echolink一样,到了china就变味,对面的管理对b字头很有看法。
离线BD1GO
发帖
1448
只看该作者 7楼 发表于: 2012-01-15
公开了也没几个懂的,懂得早会算了。
离线bg8bin
发帖
720
只看该作者 8楼 发表于: 2012-01-15
by台的素质提高与官方的目标有关系,天天喊口号穿制服的成了主流,大环境会好吗?玩短波引爱好都入会的速度远不如搞什么中继穿制服来得快。官方有几个地方在引导大家参与世界性的比赛,提高会员水平?
aprs对于商业应用是无意义的,太落后了;对于冒充别人呼号也没什么意义。by台的素质好坏与公不公开这些资料无关,这些资料本来就是公开的,我只是做了个路标而也。通过公开这个,只是想让更多的人对研究aprs的原理与底层实现产生兴趣。
离线bg8bin
发帖
720
只看该作者 9楼 发表于: 2012-01-15
'
最初,是自愿向当地的癌症研究机构捐款,通过电子邮件从授权人获取验证码
后来,论坛有几个人可以帮助ham计算
再后来,计算源代码公开
到最后,人人都可能随意编几个呼号,自己计算验证码。
我预感:有一天,aprs服务器可能会封杀所有b电台,到时候谁也别玩!就像arriss封杀中国一样,不同的是arriss疑似政客们斗争的延续,而aprs封杀b电台则是ham自己造成的。 [表情]
立此存证!
'

不要这么夸张,公开一个函数而也,只是认大家理解一下底层的实现。固步自封提高不了大家的兴趣和水平,也提高不了by台的形象。
离线bd4rs
发帖
5111
只看该作者 10楼 发表于: 2012-01-16
学习秘密,研究秘密。
深入底层学习中。。。
离线BG2BHC
发帖
5338
只看该作者 11楼 发表于: 2012-01-16
'
最初,是自愿向当地的癌症研究机构捐款,通过电子邮件从授权人获取验证码
后来,论坛有几个人可以帮助ham计算
再后来,计算源代码公开
到最后,人人都可能随意编几个呼号,自己计算验证码。
我预感:有一天,aprs服务器可能会封杀所有b电台,到时候谁也别玩!就像arriss封杀中国一样,不同的是arriss疑似政客们斗争的延续,而aprs封杀b电台则是ham自己造成的。 [表情]
立此存证!
'
“最初”那条貌似早就不用捐款了
离线bd4rs
发帖
5111
只看该作者 12楼 发表于: 2012-01-16
'
同意楼上的看法,自己会了就得,不宜公开。万一楼主的本意被整斜了就有乐子看了。 [表情] 就像echolink一样,到了china就变味,对面的管理对b字头很有看法。
'
echolink china味啥个味道,可能又有一年没上去了。
等上去找你,感觉感觉中国味
离线bg8bin
发帖
720
只看该作者 13楼 发表于: 2012-01-16
没用过echolink,不过我觉得产生那样的结果与我前面说的原因有很大关系。对于那群人来说,喊口号才是他们的主要任务。对于怎么应急通信,怎么用aprs协助调度等是没有兴趣的。如果你对他介绍aprs,他会说那是个什么东西?用什么基站......
离线BD8ADT
发帖
1220
只看该作者 14楼 发表于: 2012-01-16
那群人喔.......表说aprs这落後的东西,就连小小手台咋个设置上中继都大有人不会
还应急通信个p
离线BG4EBC
发帖
17902
只看该作者 15楼 发表于: 2012-01-16
高手!!!!!!

以后可以自己授权了?
离线BG3OGR
发帖
3565
只看该作者 16楼 发表于: 2012-01-16
不做任何争论!
离线BH1IEO
发帖
4250
只看该作者 17楼 发表于: 2012-01-16
哈哈 好好过小年儿,春节后把aprs介绍给区应急办和民防办,争取他们上几套设备给我们,这样用到实处。
离线BG1QXU
发帖
1953
只看该作者 18楼 发表于: 2012-01-16
这个帖子值得顶一下,

技术探讨~

记得这一年多,在网上,最少看过2个 小号 在用 aprs ~

不知道是哪位大佬发的密码~ 呵呵
离线BA1AK
发帖
1431
只看该作者 19楼 发表于: 2012-01-16
'
哈哈 好好过小年儿,春节后把aprs介绍给区应急办和民防办,争取他们上几套设备给我们,这样用到实处。
'

木有错,他们天天喊应急通信,aprs他们都不想弄明白,怎么应急?