兔子--HMAC加密算法

	public static String initMacKey() throws Exception {

		KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");
		SecretKey secretKey = keyGenerator.generateKey();
		return Base64.encodeToString(secretKey.getEncoded(), Base64.DEFAULT);
	}

	public String encrypt_HMAC(String source, String key) throws Exception {
		SecretKey secretKey = new SecretKeySpec(Base64.decode(key,
				Base64.DEFAULT), "HmacMD5");

		Mac mac = Mac.getInstance(secretKey.getAlgorithm());
		mac.init(secretKey);
		return Base64.encodeToString(mac.doFinal(source.getBytes()),
				Base64.DEFAULT);

	}
	//使用
	try{
		String key=initMacKey();
		String result=encrypt_HMAC("哈哈哈", key);

	}catch(Exception e){

	}

时间: 2024-08-28 22:26:40

兔子--HMAC加密算法的相关文章

兔子--MD5加密算法

public String encrypt_MD5(String source) throws Exception { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(source.getBytes()); return Base64.encodeToString(md5.digest(), Base64.DEFAULT); }

兔子--SHA加密算法

public String encrypt_SHA(String source) throws Exception { MessageDigest sha = MessageDigest.getInstance("SHA"); sha.update(source.getBytes()); return Base64.encodeToString(sha.digest(), Base64.DEFAULT); }

信息摘要算法之五:HMAC算法分析与实现

MAC(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也经常被称作HMAC算法. 1.HMAC概述 HMAC算法首先它是基于信息摘要算法的.目前主要集合了MD和SHA两大系列消息摘要算法.其中MD系列的算法有HmacMD2.HmacMD4.HmacMD5三种算法:SHA系列的算法有HmacSHA1.HmacSHA224.HmacSHA256.HmacSHA384.HmacSHA5

初识单点登录及JWT实现

单点登录 多系统,单一位置登录,实现多系统同时登录的一种技术 (三方登录:某系统使用其他系统的用户,实现本系统登录的方式.如微信登录.支付宝登录) 单点登录一般是用于互相授信的系统,实现单一位置登录,全系统有效 一.Session跨域 所谓 Session 跨域就是摒弃了系统提供的 Session ,而使用自定义的类似 Session 的机制来保存客户端数据的一种解决方案. 如:通过设置 cookie 的 domain 来实现 cookie 的跨域传递.在 cookie 中传递一个自定义的 se

BASE64、MD5、SHA、HMAC几种加密算法

本篇内容简要介绍BASE64.MD5.SHA.HMAC几种加密算法.    BASE64编码算法不算是真正的加密算法.    MD5.SHA.HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法.我们通常只把他们作为加密的基础.单纯的以上三种的加密并不可靠. BASE64 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式.(The Base64 Content-Transfe

C#封装加密算法(MD5、SHA、HMAC、DES、RSA)的一个类

using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen.Helpers { /// <summary> /// 安全助手 /// </summary> public sealed class SecurityHelper { private static readonly byte [] IvBytes = { 0x01, 0x23, 0x

[C#] 简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)

1 using System; 2 using System.IO; 3 using System.Security.Cryptography; 4 using System.Text; 5 6 namespace Wen.Helpers 7 { 8 /// <summary> 9 /// 安全助手 10 /// </summary> 11 public sealed class SecurityHelper 12 { 13 private static readonly byte

兔子--android SDK支持的3中不可逆转的加密算法

1.MD5(信息-摘要算法) 常用于文件校验.不管文件多大,经过md5加密后都能生成唯一的md5值. 2.SHA(安全散列算法) 用于电子商务等信息安全领域.比md5更安全. 3.HMAC(散列消息鉴别码) 用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴定信息的完整性.使用一个密钥生成一个固定长度大小的小数据块(MAC),并将其加入到消息中,然后传输.接收方利用与发送方共享的密钥进行鉴别认证.

常见加密算法

常见的加密算法可以分成三类,对称加密算法,公钥加密算法和单向加密算法. 对称加密 指加密和解密使用相同密钥的加密算法.对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性.假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦.对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去