java安全架构____java HMAC加密
来源:互联网 发布:2016淘宝客刷销量 编辑:程序博客网 时间:2024/05/19 18:17
package com.security.hmac;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.KeyGenerator;import javax.crypto.Mac;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;/** * @author Administrator * hmac加密 */public class Hmac {private final static String KEY_MAC = "HmacMD5";/** * 全局数组 */private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };/** * 测试方法 * @param args */public static void main(String[] args) throws Exception {String key = Hmac.init();System.out.println("Mac密钥___:" + key);String generalStr = "123456";System.out.println(hmacEncode(key,generalStr));}/** * 初始化HMAC密钥 * 转十六进制的字符串秘钥太他妈长 主要说明个意思 * 基本都选用base编码一下 在解码 * @return */public static String init() {String key="";try {KeyGenerator generator = KeyGenerator.getInstance(KEY_MAC);SecretKey secretKey= generator.generateKey();key = bytesToHexString(secretKey.getEncoded());} catch (Exception e) {e.printStackTrace();}return key;}/** * hmac 加密 * @param key hmac秘钥 * @param generalStr 明文 * @return */public static String hmacEncode(String key,String generalStr){String hmacStr="";try {SecretKey secretKey=new SecretKeySpec(key.getBytes("UTF-8"), KEY_MAC); Mac mac=Mac.getInstance(secretKey.getAlgorithm());mac.init(secretKey);byte[]bytes=generalStr.getBytes("UTF-8");hmacStr=bytesToHexString(mac.doFinal(bytes));} catch (Exception e) {e.printStackTrace();} return hmacStr;}/** * 转换字节数组为十六进制字符串 * @param bytes字节数组 * @return 十六进制字符串 */@SuppressWarnings("unused")private static String bytesToHexString(byte[] bytes) {StringBuffer sb = new StringBuffer();for (int i = 0; i < bytes.length; i++) {int ret = bytes[i];if (ret < 0) {ret += 256;}int n = ret % 16;int m = ret / 16;sb.append(hexDigits[m] + hexDigits[n]);}return sb.toString();}}
//运行结果
//摘要后对比
0 0
- java安全架构____java HMAC加密
- java安全架构____java HMAC原理
- java安全架构____java MD5加密
- java安全架构____java SHA加密原理
- java安全架构____java SHA加密
- java安全架构____java Base64加密
- java安全架构____java DSA加密解密
- java安全架构____java Base64原理分析
- java安全架构____java DSA数字签名原理
- java安全架构____java DSA签名原理
- java安全架构____java 秘钥对原理
- java安全架构____java 秘钥对生成
- Java安全架构____java的Keytool工具Oracle官方说明文档
- Java安全架构____RSA加密
- java安全架构____DES加密原理
- java安全架构____DES加密解密
- java安全架构____RSA加密原理(1)
- java安全架构____RSA加密原理(2)
- PAT A1099. Build A Binary Search Tree (30)
- http请求获取json字符串的方法
- 爬取抗压吧的《猪狗恩仇录》
- C++算法题_第一周
- Dubbo|Dubbox 源码解读略析
- java安全架构____java HMAC加密
- 50个很棒的python模块
- Android Studio如何导入第三方主题
- 在android 下支持ntfs-3g
- 1004. 成绩排名 (20)
- (Java学习笔记5.1)简单排序
- 尚硅谷java学习笔记——13.java反射机制
- 详解各类球面投影
- MAVEN安装配置