import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; /** * ASC加密解密辅助类. * * @author admin * @version 1.0.0 * */ public class AesUtil { private static final String AES = "AES"; private static final String CRYPT_KEY = "YUUAtestYUUAtest"; /** * 加密. * * @param src * @param key * @return * @throws Exception */ private static byte[] encrypt(byte[] src, String key) throws Exception { Cipher cipher = Cipher.getInstance(AES); SecretKeySpec securekey = new SecretKeySpec(key.getBytes(), AES); cipher.init(Cipher.ENCRYPT_MODE, securekey); return cipher.doFinal(src); } /** * 解密. * * @param decryptStr * @return * @throws Exception */ private static byte[] decrypt(byte[] src, String key) throws Exception { Cipher cipher = Cipher.getInstance(AES); SecretKeySpec securekey = new SecretKeySpec(key.getBytes(), AES); cipher.init(Cipher.DECRYPT_MODE, securekey); return cipher.doFinal(src); } /** * 二行制转十六进制字符串. * * @param b * @return */ private static String byte2hex(byte[] b) { String hs = ""; String stmp = ""; for (int n = 0; n < b.length; n++) { stmp = (java.lang.Integer.toHexString(b[n] & 0XFF)); if (stmp.length() == 1) { hs = hs + "0" + stmp; } else{ hs = hs + stmp; } } return hs.toUpperCase(); } private static byte[] hex2byte(byte[] b) { if ((b.length % 2) != 0) { throw new IllegalArgumentException("长度不是偶数"); } byte[] b2 = new byte[b.length / 2]; for (int n = 0; n < b.length; n += 2) { String item = new String(b, n, 2); b2[n / 2] = (byte) Integer.parseInt(item, 16); } return b2; } /** * 解密(供外部调用). * * @param data * @return * @throws Exception */ public final static String decrypt(String data) { try { return new String(decrypt(hex2byte(data.getBytes()), CRYPT_KEY)); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 加密(供外部调用). * * @param data * @return * @throws Exception */ public final static String encrypt(String data) { try { return byte2hex(encrypt(data.getBytes(), CRYPT_KEY)); } catch (Exception e) { e.printStackTrace(); } return null; } }
相关推荐
C#加密类的使用,是一个微软讲加密相关类使用的PPT。对于想了解加密技术的朋友有一定的帮助。
Bcrypt加密类相关jar包
java md5 加密功能类,16 32位均支持。初次封类,如有不满意的地方,请大家谅解
2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设项目的学生、或者相关技术学习者作为学习资料参考使用。 3、该资源包括全部源码,需要具备一定基础才能...
基于Python实现的Tor加密流量分类项目源码+pkl模型文件.zip基于Python实现的Tor加密流量分类项目源码+pkl模型文件.zip基于Python实现的Tor加密流量分类项目源码+pkl模型文件.zip基于Python实现的Tor加密流量分类项目...
2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设...
数据的加密与解密 文件的加密与解密 第 章 加密与解密技术 第19章 加密与解密技术 829 19.1 数据的加密与解密 实例571 异或算法对数字进行加密与解密 光盘位置:光盘\MR\19\571 中级 趣味指数: 实 例说明 在实现...
2、使用 RijndaelManaged 进行相关加密解密; 3、使用 DataEncryptionAndDecryptionManager.Instance.ConductEncryption 即可加密数据; 4、使用 DataEncryptionAndDecryptionManager.Instance.ConductDecryption ...
本程序支持字符串和文件加密和解密,密文以16进制形式输出。能够显示输入密钥的16轮子密钥,对于输入的8字节明文能够显示出16轮迭代的中间结果。鉴于本人有限,有不对的地方希望大家多多批评和指正! 本人上传的处女...
2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设...
用Java加密类实现常规的DES、RSA及SHA的加密算法,代码完整,收藏一下。
计算机网络前沿技术大作业-加密流量分类项目源码+全部数据.zip个人98分期末大作业项目,代码完整下载可用。主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码...
参考博文: http://blog.csdn.net/joe_storm/article/details/11477297
主要介绍了Java实现url加密处理的方法,涉及java基于base64、编码转换实现加密解密相关操作技巧,需要的朋友可以参考下
Delphi AES 加密算法的注册机类实例源码,此算法为标准的AES算法,可根据自己的需要进行变形。AES加密算法也算是一种较常用的程序加密算法了,学会它的使用对编程有着重要意义,多参考一些别人写的AES算法,这非常有...
密和硬件加密两大类。软件加密最大的优势在于它的成本低,工艺难度小。但需 要CPU全程参与,会消耗大量的系统资源,而且加密的速度较慢,尤其是对一些 海量数据进行处理时,会造成硬盘读写的瓶颈。硬件加密不但解决...
这东西放了很久了,今天抽个时间传上来,希望能给刚学习的朋友一点帮助。不过,AES实现起来较DES容易多了,照着书上的流程,基本上不废什么事就能完成。...相信对于需要加密电子文档的朋友,这个工具还是不错的。
VC 课程设计附文档:RSA文件加密相关源码,本课程设计将分析RSA算法的应用现状,论证文件加密应用RSA算法的可行性和意义。并设计一套完整实用的RSA文件加密解决方案,对RSA算法进行研究,从常规RSA算法出发,用C ...
这里最简单的方法就是对设备加密,然后再解密,本源代码 就是一个与此相关的例子,对U盘数据加密,保护信息隐蔽,防止隐私泄露。本程序在运行时首先检测本地计算机的移动设备是否存在,然后选择移动设备,实现加密。
Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议...