簡體   English   中英

如何從Java方法返回字節值並將其用作字符串

[英]How to return byte value and use it as String from Java Method

我有一種從公鑰和私鑰生成HMAC值的方法。

這是我的方法代碼:

String mykey = "fb6a1271f98099ac96cc0002d5e8022b";
String test = "json6b17f33e25e2d8197462d1c6bcb0b1302156641988";
try {
    Mac mac = Mac.getInstance("HmacSHA1");
    SecretKeySpec secret = new SecretKeySpec(mykey.getBytes(),
            "HmacSHA1");
    mac.init(secret);
    byte[] digest = mac.doFinal(test.getBytes());
    for (byte b : digest) {
        System.out.format("%02x", b);        
    }

    System.out.println();
} catch (Exception e) {
    System.out.println(e.getMessage());
}

現在按照要求,我需要使用從它返回的值作為String。

這是從中的方法返回的值

System.out.format("%02x", b); =bd0aea241e88c8a22692eba02887ad97a220f827 

請幫我..

我會推薦這樣的東西(使用StringBuilder)

    StringBuilder sb = new StringBuilder(digest.length * 2);  

    Formatter formatter = new Formatter(sb);  
    for (byte b : digest) {  
        formatter.format("%02x", b);  
    }  

    return sb.toString();  

如果您要查找字符串的十六進制形式,則BigInteger具有出色的基本轉換功能:

return new BigInteger(mac.doFinal(test.getBytes())).toString(16);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM