我是靠谱客的博主 炙热仙人掌,这篇文章主要介绍Milenage算法的改写(c,c++变成java),现在分享给大家,希望可以做个参考。

复制代码
1

前段时间,公司要求对C代码的Milenage算法进行java版本的迁移,拿到源代码的时候,心想只要核心那还有什么不好办啊?可现实是残酷的。。

先熟悉流程:

3G程:http://wenku.baidu.com/view/04b46f1c4b73f242336c5ff8

之后做了许多尝试:

1、包括c语言中的char和java中的char是不一样的。

2、C++中还就没有byte类型,java中就有。

3、重温了很多进制转换的问题,2进制转换16进制的字符串等等


最后还是上一些源代码,其中包括GUI版本的Milenage的生成,还有官方3GPP TS 35.206 的文档,也是对这个算法的一个小总结。

后面如果还有机会,想琢磨一些对Milenage算法的破解,毕竟。。。你懂的~

源码下载:请猛戳这里

------------------------------------------------------------------------------------------------------------------------

今日做了一个小优化,主要是针对每次调用getOP()方法的时候,都要读取配置文件,采取的解决方法是在构造方法里加入,这样spring在启动的时候就会加载默认的构造方法


复制代码
1
2
3
4
String op_properties=""; public RPSGeneratorImpl() { this.op_properties=genOP(); }


之后的调用改为:


复制代码
1
2
3
4
5
6
@Override public String getOPC() { byte[] s = genK(); byte op_c[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; byte[] op = hexStr2Byte(op_properties);//原来是 hexStr2Byte(getOP())

最后,如果你不用spring,也可以这样修改,毕竟读取配置文件是很占资源的。


最后

以上就是炙热仙人掌最近收集整理的关于Milenage算法的改写(c,c++变成java)的全部内容,更多相关Milenage算法内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部