util.SecurityUtil.java
package util; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class SecurityUtil { public static String DES = "AES"; // optional value AES/DES/DESede public static String CIPHER_ALGORITHM = "AES"; // optional value AES/DES/DESede public static Key getSecretKey(String key) throws Exception{ SecretKey securekey = null; if(key == null){ key = ""; } KeyGenerator keyGenerator = KeyGenerator.getInstance(DES); keyGenerator.init(new SecureRandom(key.getBytes())); securekey = keyGenerator.generateKey(); return securekey; } public static String encrypt(String data,String key) throws Exception { SecureRandom sr = new SecureRandom(); Key securekey = getSecretKey(key); Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); byte[] bt = cipher.doFinal(data.getBytes()); String strs = new BASE64Encoder().encode(bt); return strs; } public static String detrypt(String message,String key) throws Exception{ SecureRandom sr = new SecureRandom(); Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); Key securekey = getSecretKey(key); cipher.init(Cipher.DECRYPT_MODE, securekey,sr); byte[] res = new BASE64Decoder().decodeBuffer(message); res = cipher.doFinal(res); return new String(res); } public static void main(String[] args)throws Exception{ String message = "password"; String key = ""; String entryptedMsg = encrypt(message,key); System.out.println("encrypted message is below :"); System.out.println(entryptedMsg); String decryptedMsg = detrypt(entryptedMsg,key); System.out.println("decrypted message is below :"); System.out.println(decryptedMsg); } }
相关推荐
一段使用Java实现的AES/CBC/NoPadding方式实现的文件加解密,同时附加一份密文以及密钥以及向量以供测试 http://download.csdn.net/download/eguidao/10120453
本篇将深入探讨如何在PHP中实现与Java兼容的AES/ECB/PKCS7Padding加密方式,并将结果转化为16进制字符串。 AES(Advanced Encryption Standard),即高级加密标准,是一种广泛使用的对称加密算法。ECB(Electronic ...
JAVA解决AES ECB 模式下加密解密;附加国内三方AES加密网站---http://tool.chacuo.net/cryptaes;如有用解决您工作问题,烦请点个赞
本教程主要探讨了如何使用Java编程语言实现DES(Data Encryption Standard)、3DES(Triple DES)和AES(Advanced Encryption Standard)这三种常见的对称加密算法,并且详细讲解了五种分组密码的工作模式。...
是标准的AES算法,支持在线AES加解密网站互解。 本源码从CSDN一位前辈的源码基础上做了更改,增加支持加密返回BASE64,更加完善。在此感谢原作者: http://download.csdn.net/download/qiaohaidong/9477264 需要注意...
本文将深入探讨如何使用Java语言实现AES(Advanced Encryption Standard)和DES(Data Encryption Standard)算法对文件进行加密和解密。 AES是一种现代的块加密算法,被广泛用于商业应用,因为它提供了极高的安全...
这里的“C++和JAVA,AES/ECB/PKCS5Padding 互通”指的是使用相同的加密算法,即高级加密标准(AES)的电子密码本模式(ECB)和PKCS5填充(Padding)来实现两个不同平台之间的数据安全传输。AES是一种广泛使用的对称...
总的来说,Cryptography单元是Delphi开发者实现加解密需求的一个便利工具,它简化了对AES、DES和MD5的使用,使开发者能够更专注于业务逻辑,而不是底层加密算法的实现。对于任何涉及数据安全的Delphi项目,这个单元...
下面将详细阐述DES加密解密的基本原理、Java和JavaScript的实现方式以及如何在两者之间进行互操作。 1. **DES加密算法**: DES是一种分组密码,使用64位的数据块和56位的密钥进行操作。它通过一系列复杂的数学变换...
本文将详细介绍如何在Java中使用Hutool库来实现AES和DES这两种常用的对称加密算法的加密解密过程。 首先,我们来了解一下AES和DES这两种加密算法的基本概念和特点。AES(高级加密标准)和DES(数据加密标准)都是...
AES/ECB/PKCS5Padding 算法,用于数据加密,实现方式为Java。AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准
**JAVA实现DES加解密系统** DES(Data Encryption Standard)是一种经典的对称加密算法,它在信息安全领域有着广泛的应用。本文将深入探讨如何使用Java语言实现DES加解密系统,以及涉及的相关技术点。 首先,DES...
在Java中实现DES加密和解密是一项常见的任务,通常涉及到`javax.crypto`包中的类和接口。本篇文章将详细阐述DES加密解密的Java实现过程。 首先,我们需要了解DES算法的基本原理。DES是一种块密码,它将明文数据分成...
AES和3DES用于对数据进行加解密,确保数据在传输过程中不被窃取。同时,3D和Elasticsearch标签可能暗示这些加密工具类在3D图形处理或Elasticsearch集群的数据安全中有所应用。 总的来说,Java提供的加密和哈希工具...
标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption Standard)的加强版——3DES(Triple DES)加解密算法。3DES是一种广泛使用的对称加密算法,通过三次应用DES的...
本篇文章将探讨如何使用Java来实现3DES的加密和解密操作。 首先,让我们了解3DES的工作原理。3DES是对原始DES算法的三次应用,它通过将密钥分为三个部分,然后执行加密、解密、再加密的过程,从而提高了安全性。这...
本篇文章将详细介绍如何在Java中实现AES加解密,帮助你理解并掌握这一核心技术。 AES算法是在DES(Data Encryption Standard)的基础上发展起来的,具有更高的安全性,支持128位、192位和256位的密钥长度,而默认的...
这样的需求可以通过自定义注解和处理器来实现,支持多种常见的加密算法,如MD5、SHA、AES、DES和RSA。以下是对这些知识点的详细阐述: 1. **注解处理**: - 在SpringBoot中,我们可以创建自定义注解,例如`@...
Java加密技术是保护数据安全的重要工具,涉及到的主要算法有AES、DES、3DES、RSA和DSA。这些算法在信息安全领域有着广泛的应用,如数据传输、密码存储、数字签名等。以下将详细介绍这些加密算法的原理及Java中的实现...
在Java中,DES加密解密主要通过`javax.crypto`包中的类来实现。首先,我们需要一个密钥,通常是8字节的字节数组。然后,使用`KeyGenerator`生成一个DES密钥。接下来,创建`Cipher`对象并初始化它,根据需要进行加密...