You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					
					
						
							37 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							37 lines
						
					
					
						
							1.0 KiB
						
					
					
				package com.ynxbd.common.helper.common;
 | 
						|
 | 
						|
import javax.crypto.Mac;
 | 
						|
import javax.crypto.spec.SecretKeySpec;
 | 
						|
import java.nio.charset.StandardCharsets;
 | 
						|
 | 
						|
/**
 | 
						|
 * HMAC算法
 | 
						|
 */
 | 
						|
public class HMACHelper {
 | 
						|
 | 
						|
    public static String sha256(String data, String key) {
 | 
						|
        try {
 | 
						|
            Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
 | 
						|
 | 
						|
            SecretKeySpec secret_key = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
 | 
						|
 | 
						|
            sha256_HMAC.init(secret_key);
 | 
						|
 | 
						|
            byte[] array = sha256_HMAC.doFinal(data.getBytes(StandardCharsets.UTF_8));
 | 
						|
 | 
						|
            StringBuilder sb = new StringBuilder();
 | 
						|
 | 
						|
            for (byte item : array) {
 | 
						|
                sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
 | 
						|
            }
 | 
						|
            return sb.toString();
 | 
						|
        } catch (Exception e) {
 | 
						|
            e.printStackTrace();
 | 
						|
        }
 | 
						|
        return null;
 | 
						|
    }
 | 
						|
 | 
						|
    public static void main(String[] args) {
 | 
						|
        System.out.println(sha256("123", "1"));
 | 
						|
    }
 | 
						|
}
 | 
						|
 |