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.
		
		
		
		
			
				
					38 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					38 lines
				
				1.0 KiB
			| 
											3 years ago
										 | 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"));
 | ||
|  |     }
 | ||
|  | }
 |