Java 图像散列';s的输出字符串始终具有“0”;空";起初
我正在尝试对图像进行散列,并在文本字段中以字符串形式显示散列结果,代码正在运行,但结果在散列代码的开头总是有“null”Java 图像散列';s的输出字符串始终具有“0”;空";起初,java,android,hash,Java,Android,Hash,我正在尝试对图像进行散列,并在文本字段中以字符串形式显示散列结果,代码正在运行,但结果在散列代码的开头总是有“null” bitmap1 = BitmapFactory.decodeFile(picturePath1,opt); ImageView view1 = (ImageView) findViewById(R.id.gambar5); view1.setImageBitmap(bitmap1); ByteArrayOutputStream outputStream = new Byt
bitmap1 = BitmapFactory.decodeFile(picturePath1,opt);
ImageView view1 = (ImageView) findViewById(R.id.gambar5);
view1.setImageBitmap(bitmap1);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap1.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
byte[] data1 = outputStream.toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(data1);
byte[] hash = md.digest();
String result = returnHex(hash);
EditText et1 = (EditText) findViewById(R.id.editText1);
et1.setText(result);
我正在使用这个站点的returnHex函数
这是函数代码
static String returnHex(byte[] inBytes) throws Exception {
String hexString = null;
for (int i=0; i < inBytes.length; i++) { //for loop ID:1
hexString += Integer.toString( ( inBytes[i] & 0xff ) + 0x100, 16).substring( 1 );
}// Belongs to for loop ID:1
return hexString;
}
静态字符串returnHex(字节[]inBytes)引发异常{
字符串hexString=null;
for(int i=0;i
结果总是以“null”返回,如ex:null8984fb2c1ba6ec6571d36553e466c95c94eba9d6fb2079af03
我的问题是:
1.总是出现的“空”是什么?它是散列码的一部分还是一个bug?
2.如果“null”是一个bug,我如何使它不包含在结果中?您将字符串设置为
null
然后附加到它;还可能发生什么
将其设置为空字符串以对其进行初始化,例如,
string hexString=“”代码>我之前没有意识到returnHex函数中的那行代码,我真傻。下次使用其他函数之前,我必须仔细阅读。感谢@dave解决问题并更正我的问题:)问候!