java中十六进制数_Java中的十六进制到整数

我正在尝试将String十六进制转换为整数。从哈希函数(sha-1)计算出十六进制字符串。我收到此错误:java.lang.NumberFormatException。我猜它不喜欢十六进制的String表示形式。我该如何实现。这是我的代码:

public Integer calculateHash(String uuid) {

try {

MessageDigest digest = MessageDigest.getInstance("SHA1");

digest.update(uuid.getBytes());

byte[] output = digest.digest();

String hex = hexToString(output);

Integer i = Integer.parseInt(hex,16);

return i;

} catch (NoSuchAlgorithmException e) {

System.out.println("SHA1 not implemented in this system");

}

return null;

}

private String hexToString(byte[] output) {

char hexDigit[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

'A', 'B', 'C', 'D', 'E', 'F' };

StringBuffer buf = new StringBuffer();

for (int j = 0; j < output.length; j++) {

buf.append(hexDigit[(output[j] >> 4) & 0x0f]);

buf.append(hexDigit[output[j] & 0x0f]);

}

return buf.toString();

}

例如,当我传递以下字符串: _DTOWsHJbEeC6VuzWPawcLA时 ,他的哈希值是:

0xC934E5D372B2AB6D0A50B9F0341A00ED029BDC15

但是我得到了:java.lang.NumberFormatException:对于输入字符串:“

0xC934E5D372B2AB6D0A50B9F0341A00ED029BDC15 ”

我真的需要这么做

我有一个由其UUID标识为字符串的元素的集合。我将必须存储这些元素,但是我的限制是使用整数作为其id。这就是为什么我计算给定参数的哈希值然后将其转换为int的原因。也许我做错了,但是有人可以给我建议以正确实现这一目标!!

谢谢你的帮助 !!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值