public void computeDigest(byte[] b)
{
currentAlgorithm.reset();
currentAlgorithm.update(b);
byte[] hash = currentAlgorithm.digest();
String d = "";
for (int i = 0; i < hash.length; i++)
{
int v = hash[i] & 0xFF; /****The Problem****/
if (v < 16) d += "0";
d += Integer.toString(v, 16).toUpperCase() + " ";
}
digest.setText(d);
}上面这段代码中,觉得语句 v = hash[i] & 0xFF 纯属多余,可能我是错误的,请教!!
{
currentAlgorithm.reset();
currentAlgorithm.update(b);
byte[] hash = currentAlgorithm.digest();
String d = "";
for (int i = 0; i < hash.length; i++)
{
int v = hash[i] & 0xFF; /****The Problem****/
if (v < 16) d += "0";
d += Integer.toString(v, 16).toUpperCase() + " ";
}
digest.setText(d);
}上面这段代码中,觉得语句 v = hash[i] & 0xFF 纯属多余,可能我是错误的,请教!!
解决方案 »
- 无法安装xmind
- 静态hashtable中元素的存放问题
- 在RSA下对汉字进行加密啊
- Applet的jar文件问题
- 我今天面试的两道题,你做得出来吗?
- 请问如果不关连接,如何在Access中更新数据
- 救救我啊!好几种方法都不行:(
- 从一个txt文件中读信息,记录之间用回车符隔开,请帮我看看程序
- "mybean.java": Warning #: 368 : class com.f1j.View in package com.f1j has been deprecated at line 19, column 20是什么错误?
- java awt 图片记忆问题
- 谁来给讲讲JAVA的反射机制啊?简明扼要一点
- 这个更换布局center pannel怎么个写法?
这是要保证转换为int的时候,高位全部为0,也就是说hash[i]为负数的时候,会转为正数。
for example
byte b = -5;
int i = b & 0xFF; //这里的结果只有低8位,高位全部为0(int为4个字节32位)
System.out.println(i); //所以变为正数int j = b & 0xFFFFFFFF; //高位也进行运算,那么符号为会被保留
System.out.println(j); //所以这里还是负数