Chinaunix首页 | 论坛 | 博客
  • 博客访问: 367540
  • 博文数量: 284
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1707
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-14 16:38
文章分类

全部博文(284)

文章存档

2015年(6)

2014年(278)

我的朋友

分类: Java

2014-06-16 15:54:20

ava 创建 HMAC 签名

 

1. []ComputopTest.java     

package com.javaonly.hmac.test;

 

import java.io.IOException;

import java.security.InvalidKeyException;

import java.security.KeyManagementException;

import java.security.NoSuchAlgorithmException;

import javax.crypto.BadPaddingException;

import javax.crypto.Cipher;

import javax.crypto.IllegalBlockSizeException;

import javax.crypto.NoSuchPaddingException;

import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

import org.apache.commons.codec.binary.Hex;

import javax.crypto.Mac;

 

public class ComputopTest {

 

 public static void main(String args[]) throws NoSuchAlgorithmException,

   KeyManagementException,

    InvalidKeyException,

   IllegalBlockSizeException, BadPaddingException {

 

  

  

  String macKey = "The HMAC key";

  String macData ="the data string"

  System.out.println("MACDATA:"+macData);

 

  Mac mac = Mac.getInstance("HmacSHA256");

                //get the bytes of the hmac key and data string

  byte[] secretByte = macKey.getBytes("UTF-8");

  byte[] dataBytes = macData.getBytes("UTF-8");

  SecretKey secret = new SecretKeySpec(secretByte, "HMACSHA256");

 

  mac.init(secret);

  byte[] doFinal = mac.doFinal(dataBytes);

  byte[] hexB = new Hex().encode(doFinal);

  String checksum = new String(hexB);

  

 }

}

阅读(375) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~