Java AES加密解密算法使用示例_AES算法应用场景

  • 时间:
  • 浏览:516
  • 来源:恰卡网

Java AES算法是属于高级加密标准,它是一种对称加密算法,AES加密被美国用于保护敏感但未分类的资料,所以我们可以说它是足够安全的,AES加密解密算法应用场景也比较广泛,比如我们可以用于加密api接口返回或请求的数据,这样即使我们的app被人抓包了,也不可能知道我们接口请求或返回的Json数据是什么。

什么是对称加密算法呢?

对称加密算法是比较常见的加密算法,使用一个key密钥加密或解密字符串,正是因为它的加密解密都是使用的同一个Key密钥,只要别人不知道你加密的Key密钥,它就很难破解你所加密的JSON数据,就算知道了你明文的key密钥,如果你对key密钥进行了二次封装,对方也不可能破解得了你的json数据,所以AES加密解密算法还是比较安全的。

小编对明文key密钥进行了二次封装,先是将“www.tpyyes.com”明文密钥进行md5加密,然后使用SecretKeySpec对象对md5密钥进行了封装,使用了AES算法,这样就生成了一个非字符串类型的密钥,别人就很难知道你的密钥内容了。

如下是小编在Api接口开发中常常使用到的AES加密解密算法的示例:

packageenglish;

importjava.security.MessageDigest;
importjava.security.NoSuchAlgorithmException;
importjava.util.Base64;

importjavax.crypto.Cipher;
importjavax.crypto.spec.SecretKeySpec;

publicclassAesDemo{
//测试
	publicstaticvoidmain(String[]args){
		//明文密钥
		finalStringsecretKey="www.tpyyes.com";
		//需要加密的字符串
		Stringstr="Helloworld!";
		//加密
		StringencryptedStr=encryptStr(str,secretKey);
		//解密
		StringdecryptedStr=decryptStr(encryptedStr,secretKey);
		//输出加密后字符串
		System.out.println(encryptedStr);
		//输出解密后字符串
		System.out.println(decryptedStr);
	}
	
	//对明文密钥进行二次封装,生成最终密钥
	publicstaticSecretKeySpecsetKey(StringkeyStr)throwsNoSuchAlgorithmException{
		//先MD5加密
		MessageDigestmd=MessageDigest.getInstance("MD5");
		byte[]arr=md.digest(keyStr.getBytes());
		SecretKeySpecresultKey=newSecretKeySpec(arr,"AES");
		returnresultKey;
	}
	
	//字符串加密
	publicstaticStringencryptStr(StringstrToEncrypt,Stringsecret)
	{
		try
		{
			SecretKeySpecmd5key=setKey(secret);
			//创建密码器
			Ciphercipher=Cipher.getInstance("AES/ECB/PKCS5Padding");
			cipher.init(Cipher.ENCRYPT_MODE,md5key);
			returnBase64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8")));
		}
		catch(Exceptione)
		{
			System.out.println("加密错误:"+e.toString());
		}
		returnnull;
	}

	//字符串解密
	publicstaticStringdecryptStr(StringstrToDecrypt,Stringsecret)
	{
		try
		{
			SecretKeySpecmd5key=setKey(secret);
			//创建密码器
			Ciphercipher=Cipher.getInstance("AES/ECB/PKCS5PADDING");
			cipher.init(Cipher.DECRYPT_MODE,md5key);
			returnnewString(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt)));
		}
		catch(Exceptione)
		{
			System.out.println("解密错误:"+e.toString());
		}
		returnnull;
	}
	
}

加密解密后:

LT4sV++1vF1oWNnxU4lTAg==
Helloworld!

Java AES算法加密解密Json字符串数据,我认为是一个非常好的防止app抓包的方法,如果您有更好的方法,请在下方留言告知。

猜你喜欢

SEO优化:seo正规网站优化技术

经过正规查找引擎优化技能做网站排名,是可取的网站优化办法,关于大中型网站来讲,尤为如此。相关的SEO教程是海量的,本文对相关操作点做一个汇总。别的,经过研讨百度算法研讨相关软件做排名也有效果,乃至效果很强悍,但只需少部分能把握到。 太之云:www

2020-04-09

网站要升级改版了 怎样用SEO技术避免大量死链出现?

从简单的展示型网站到营销型网站,从营销型网站到搭建移动网站对于已经运营了十年以上的网站来说,最为揪心的就是每一次升级改版,时代的变化,技术的日新月异,网站运营一段时期后必须要进行改版,而在网站升级改版过程中,会出现大量死链,那么如何利用SEO

2020-04-09

SEO爆破技术,激发你的思维!

SEO排名爆破技术,一个贯穿SEO系统的公式,这篇内容不算新了,不过现在依然很受用,正确的思维导向永远不过时,至少我是这么觉得。之前很多人表示这个内容是在炒作,炒作不炒作与我无关,我保留意见。不过我一向的态度都是:任何东西都有其价值,不能发现价

2020-04-09