- 浏览: 914785 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (498)
- J2EE (52)
- 数据库 (17)
- java基础 (43)
- web技术 (19)
- 程序设计 (6)
- 操作系统 (18)
- IT资讯 (7)
- 我的IT生活 (12)
- 学习笔记 (9)
- Jquery (25)
- JavaScript (18)
- spring (40)
- Hibernate (12)
- Struts (10)
- YUI (2)
- Extjs (22)
- .net (0)
- Eclipse (10)
- 社会主义 (2)
- 服务器 (9)
- CSS (8)
- 网络安全 (16)
- 版本控制 (9)
- PHP (2)
- Oracle (42)
- SQL server (1)
- Mysql (11)
- 项目管理 (3)
- 开发工具使用 (10)
- SQL语句 (7)
- Perl (0)
- Shell (6)
- 漏洞 (4)
- ibatis (5)
- hacker (2)
- SQL注入 (6)
- Hacker工具 (2)
- 入侵和渗透 (7)
- 插件/组件 (2)
- 最爱开源 (5)
- 常用软件 (2)
- DOS (1)
- HTML (2)
- Android (9)
- CMS (1)
- portal (8)
- Linux (7)
- OSGI (1)
- Mina (5)
- maven (2)
- hadoop (7)
- twitter storm (2)
- sap hana (0)
- OAuth (0)
- RESTful (1)
- Nginx (4)
- flex (1)
- Dubbo (1)
- redis (1)
- springMVC (1)
- node.js (1)
- solr (2)
- Flume (1)
- MongoDB (2)
- ElasticSearch (1)
最新评论
-
M_drm:
请问要怎么设置浏览器才不报没权限呢?
用JS在页面调用本地可执行文件的方法(ACTIVEX) -
Alexniver:
官方文档。When importing data into I ...
mysql导入数据过慢 解决方法 -
camelwoo:
我记得 Criteria 可以做连接查询与子查询,也可以做分页 ...
Hibernate总结篇二 -
zhenglongfei:
楼主如果SubKeyName 这个节点不存在,怎么办??怎么用 ...
Java操作注册表 -
yxx676229549:
用log4j 2 了
logback
java计算校验和:对“消息头+会话头+事务头+操作信息”按32位异或,对异或结果取反后的值为校验和。
16进制表示的16位或32位整数,高8位位组在前,低8位位组在后。举个例子:
int n = 148; // 转换成4字节,16进制
int hi = n >> 8 ; //高16位
int lo = n & 0x00ff; //低16位
String hig = Integer.toHexString(hi); //长度不足,再补0
String low = Integer.toHexString(lo); // 16进制
----------------------------------------------------------------
这样148按要求就转换成了0094
/** * 计算校验和<br> * <p>对“消息头+会话头+事务头+操作信息”按32位异或,对异或结果取反后的值为校验和。 * @param msg * @return */ private String calcCheckSum(String msg) { byte[] arr = msg.getBytes(); byte[] res = new byte[4]; for (int i = 0; i < arr.length; i += 4) { res[0] ^= arr[i]; res[1] ^= arr[i + 1]; res[2] ^= arr[i + 2]; res[3] ^= arr[i + 3]; } res[0] = (byte) ~res[0]; res[1] = (byte) ~res[1]; res[2] = (byte) ~res[2]; res[3] = (byte) ~res[3]; String resStr = ""; for (int i = 0; i < 4; i++) { resStr = resStr + byte2hex(res[i]); } return resStr; } /** * 将单字节转成16进制<br> * @param b * @return */ private String byte2hex(byte b) { StringBuffer buf = new StringBuffer(); char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; int high = ((b & 0xf0) >> 4); int low = (b & 0x0f); buf.append(hexChars[high]); buf.append(hexChars[low]); return buf.toString(); }
16进制表示的16位或32位整数,高8位位组在前,低8位位组在后。举个例子:
int n = 148; // 转换成4字节,16进制
int hi = n >> 8 ; //高16位
int lo = n & 0x00ff; //低16位
String hig = Integer.toHexString(hi); //长度不足,再补0
String low = Integer.toHexString(lo); // 16进制
----------------------------------------------------------------
这样148按要求就转换成了0094
发表评论
-
List对象排序通用方法
2014-07-29 09:21 1026在数据库中查出来的列 ... -
EJBCA环境搭建
2014-04-03 17:31 1085EJBCA开发者 http://wiki.ejbca.org/ ... -
Java & Eclipse 相关内容杂记及技巧
2013-11-26 22:42 10491、Eclipse 的启动画面 A、加启动参数。如: ... -
一套貌似很牛B的Nutch相关框架视频教程
2013-10-24 09:16 1101国内首套免费的《Nutch相关框架视频教程》(1-20) ht ... -
HTTP文件断点上传
2013-05-14 00:10 1026HTTP文件断点上传 http://www.cnblogs.c ... -
使用 Eclipse Memory Analyzer 检测内存泄漏问题
2013-05-05 19:01 862转:http://blog.csdn.net/moneyice ... -
memcached实现多个tomcat 共享一个session(转)
2013-04-23 09:49 872http://dqm926.iteye.com/blog/18 ... -
Java字符编码根本原理
2013-04-03 16:33 865Java开发中,常常会遇到乱码的问题,一旦遇到这种问题,常常就 ... -
StringUtils常用方法说明
2013-01-28 09:21 997http://www.iteye.com/topic/1128 ... -
logback
2013-01-23 09:40 1283http://yuri-liuyu.iteye.com/blo ... -
中文排序要注意的问题
2012-12-08 10:10 1148遇到了中文排序问题,比如想用拼音排序, String[] ... -
位运算
2012-11-21 17:50 954程序中的所有数在计算 ... -
HashMap的2中遍历方式比较
2012-11-20 11:47 1006http://smallnetvisitor.iteye.co ... -
SVN如何强制在提交时要求添加注释说明(windows平台)
2012-11-06 18:00 3616在项目库的hooks目录下,添加一个pre-commit.ba ... -
Java虚拟机读写其他进程的数据
2012-08-22 13:07 1136Java虚拟机读写其他进程的数据 http://axiang ... -
java中对Byte字符数组定长截取的方法
2012-08-14 16:33 2103今天在在处理从网络上接收到的字符串,因为是从后台C语言过来的一 ... -
CAS单点登录配置笔记
2012-08-14 16:31 1089转:http://blog.csdn.net/lifvc/ar ... -
hadoop安装与配置
2012-08-10 11:46 1347一、安装准备 1、下载hadoop 0.21.0,地址:ht ... -
集中各种好网站
2012-08-09 16:41 9661.开源中国---在线工具: http://www.oscto ... -
人脸检测算法库 jViolajones 使用示例代码
2012-08-09 16:32 1686jViolajones是人脸检测算法Viola-Jones的一 ...
相关推荐
在通信协议中,通常会将多个数据段(如消息头、会话头、事务头和操作消息)组合在一起,然后对这些段进行32位异或。这个过程可以确保任何数据的改变都会导致最终异或结果的变化,因为不同的数据将产生不同的异或值。...
- 这种校验方式是异或校验的变体,计算结果后还需要取反,即先异或再取反得到校验值。 - 同样,如果接收端计算的结果与发送端一致,数据传输被认为是无误的。 7. **CRC_Calc.exe**: - 提供的CRC_Calc.exe文件很...
本压缩包文件“按位异或校验和计算器.rar”提供了一个用于计算异或校验和的工具,特别是针对十六进制数值的异或操作。 异或操作的基本概念是:如果两个输入位相同,结果为0;如果输入位不同,结果为1。用数学符号...
在进行校验和计算时,我们通常对所有数据位执行异或操作,最终得到的结果就是校验和。 按位异或校验和的过程如下: 1. 将所有参与校验的数据视为二进制位串。 2. 对这些位串进行逐位异或操作。这里的“位”指的是二...
"按位异或校验和计算器"是一种基于位操作的校验和算法,它通过计算所有数据位的异或结果来生成一个简短的校验值。这个校验和可以用来判断原始数据在传输或存储后是否保持一致。 异或(XOR)运算符是计算机科学中的...
当两段相同的数据进行异或时,结果是0,这在生成校验和或者计算CRC(循环冗余校验)时非常有用,因为任何数据和0异或都保持不变。此外,异或运算也常用于位操作,比如在编程中设置或清除某个位、反转位模式等。 总...
For ‘Message header + Dialog header + Transaction header + Operation information’, perform XOR by 32 bits, and take the inverse of the XOR result as the checksum
- 示例:`a &= b`等同于`a = a & b`,这将a和b进行按位与操作,并将结果赋值回a。 位运算符在编程中有着广泛的应用,如设置或清除特定位、检查位标志、数据压缩、计算掩码等。理解并熟练运用位运算符对于编写高效...
异或校验和工具,用于计算十六进制数据的异或校验和。
整理的校验值计算工具(包括异或+CRC+和校验)其中包括多款校验工具,多款CRC校验工具,包括多种方式,异或检验工具及和校验工具,满足日常数据帧的各种校验方式,已使用360杀毒扫描,无病毒。
异或(XOR)操作是一种逻辑运算,它对两个输入位进行比较,如果这两个位相同,则结果为0;如果不同,则结果为1。在数据校验中,异或和校验是一种简单但有效的错误检测方法。通过将所有ASCII码进行异或操作,可以得到...
BCC校验是一种基于位操作的错误检测技术,它的核心思想是通过对一串数据进行特定的数学运算(通常为异或操作),生成一个校验和,这个校验和会附加到原始数据的末尾。当接收方接收到数据时,也会对数据执行相同的...
标题中的“校验和小工具(求和、异或、CRC)”指的是一个软件或程序,它主要用于计算三种不同的校验和方法:求和、异或和CRC(循环冗余校验)。这些方法在计算机科学中广泛用于数据完整性检查,确保在传输或存储过程...