概述
![](https://img-blog.csdn.net/20131216160849718?watermark/2/text/ahr0cdovl2jsb2cuy3nkbi5uzxqvanb0awfuy2fp/font/5a6l5l2t/fontsize/400/fill/i0jbqkfcma==/dissolve/70/gravity/center)
前段时间,公司要求对C代码的Milenage算法进行java版本的迁移,拿到源代码的时候,心想只要核心那还有什么不好办啊?可现实是残酷的。。
先熟悉流程:
3
之后做了许多尝试:
1、包括c语言中的char和java中的char是不一样的。
2、C++中还就没有byte类型,java中就有。
3、重温了很多进制转换的问题,2进制转换16进制的字符串等等
最后还是上一些源代码,其中包括GUI版本的Milenage的生成,还有官方3GPP TS 35.206 的文档,也是对这个算法的一个小总结。
后面如果还有机会,想琢磨一些对Milenage算法的破解,毕竟。。。你懂的~
源码下载:请猛戳这里
------------------------------------------------------------------------------------------------------------------------
今日做了一个小优化,主要是针对每次调用getOP()方法的时候,都要读取配置文件,采取的解决方法是在构造方法里加入,这样spring在启动的时候就会加载默认的构造方法
String op_properties="";
public RPSGeneratorImpl() {
this.op_properties=genOP();
}
之后的调用改为:
@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算法的改写(c,c++变成java)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复