Milenage算法的改写(c,c++变成java)

前段时间,公司要求对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在启动的时候就会加载默认的构造方法


	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,也可以这样修改,毕竟读取配置文件是很占资源的。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值