免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1861 | 回复: 2
打印 上一主题 下一主题

调用mac方法的问题?求救 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-07 13:08 |只看该作者 |倒序浏览
package com.test;

public class Test {
        public static byte[] getMac(byte[] dt, int mlen) {
                int n, k, len, ilen;
                // original input String length
                len = dt.length;
                // 原始串和mac长度的余数
                k = len % mlen;
                //
                n = mlen - k;
                ilen = len + n;
                byte[] bt = new byte[ilen];
                for (int i = 0; i < len; i++) {
                        dt[i] = (byte) (dt[i] > 0x00 ? dt[i] : dt[i] + 256);
                        bt[i] = dt[i];
                }
                bt[len] = 127;

                byte bo[] = new byte[mlen];
                for (int i = 0; i < ilen {
                        for (int j = 0; j < mlen; j++) {
                                bo[j] ^= bt[i];
                                i++;
                        }
                }

                for (int i = 0; i < mlen; i++) {
                        // 如果遇到\r \n

                        if ((bo[i] >= 0x00 ? bo[i] : bo[i] + 256) >= 0x80) { // "\r"
                                bo[i] ^= 0x80;
                        }

                        if (bo[i] == 0x0d) { // "\r"
                                bo[i] = 0x4d;
                        }
                        if (bo[i] == 0x0a) { // "\n"
                                bo[i] = 0x4a;
                        }
                        if (bo[i] == 0x3a) { // ":"
                                bo[i] = 0x7a;
                        }
                        if (bo[i] == 0x7c) { // "|"
                                bo[i] = 0x3c;
                        }
                        if (bo[i] == 0x00) { // "0"
                                bo[i] = 0x40;
                        }

                }
                return bo;
        }

        /** * 将String转为byte数组 */
        public static byte[] stringToBytes(String s, int length) {
                while (s.getBytes

                ().length < length) {
                        s += " ";
                }
                return s.getBytes();
        }
       
       
        public static void main(String[] args) {
                String test = "90|EPA0FE00000|20130425|040136|05|461800|EPA0FE2|0203|130409011231|3004015971|50.40|";
                byte[] testByte = stringToBytes(test,85);
                byte[] mac = getMac(testByte,;
                System.out.println(mac);
        }

}
上面main函数有问题吗?

一组字符串校验后,生产什么结果是什么呢?

论坛徽章:
0
2 [报告]
发表于 2013-06-09 08:14 |只看该作者
请高手 帮忙回复。

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
3 [报告]
发表于 2013-06-09 19:15 |只看该作者
没看懂你的意思,感觉这些所有的都有函数的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP