`

java 简单实现AES/DES加解密

    博客分类:
  • j2ee
阅读更多

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);
	}
}

 

分享到:
评论
1 楼 honey_fansy 2016-06-07  
你这是使用,不是实现吧。。。

相关推荐

    Java实现的AES/CBC/NoPadding方式实现的文件加解密

    一段使用Java实现的AES/CBC/NoPadding方式实现的文件加解密,同时附加一份密文以及密钥以及向量以供测试 http://download.csdn.net/download/eguidao/10120453

    对接java AES/ECB/PKCS7Padding加密

    本篇将深入探讨如何在PHP中实现与Java兼容的AES/ECB/PKCS7Padding加密方式,并将结果转化为16进制字符串。 AES(Advanced Encryption Standard),即高级加密标准,是一种广泛使用的对称加密算法。ECB(Electronic ...

    Java解决AES加密解密 ( AES/ECB/PKCS5Padding )

    JAVA解决AES ECB 模式下加密解密;附加国内三方AES加密网站---http://tool.chacuo.net/cryptaes;如有用解决您工作问题,烦请点个赞

    基于Java实现的加解密方法(DES、3DES、AES)以及五种分组密码工作模式

    本教程主要探讨了如何使用Java编程语言实现DES(Data Encryption Standard)、3DES(Triple DES)和AES(Advanced Encryption Standard)这三种常见的对称加密算法,并且详细讲解了五种分组密码的工作模式。...

    Delphi XE2+标准AES加解密算法(AES/EBC,CBC/PKCS5Padding-base64)

    是标准的AES算法,支持在线AES加解密网站互解。 本源码从CSDN一位前辈的源码基础上做了更改,增加支持加密返回BASE64,更加完善。在此感谢原作者: http://download.csdn.net/download/qiaohaidong/9477264 需要注意...

    Java实现用AES+des对文件加密解密Java实现用AES+des对文件加密解密

    本文将深入探讨如何使用Java语言实现AES(Advanced Encryption Standard)和DES(Data Encryption Standard)算法对文件进行加密和解密。 AES是一种现代的块加密算法,被广泛用于商业应用,因为它提供了极高的安全...

    C++和JAVA,AES/ECB/PKCS5Padding 互通

    这里的“C++和JAVA,AES/ECB/PKCS5Padding 互通”指的是使用相同的加密算法,即高级加密标准(AES)的电子密码本模式(ECB)和PKCS5填充(Padding)来实现两个不同平台之间的数据安全传输。AES是一种广泛使用的对称...

    Delphi的加解密封装单元 - Cryptography (目前只支持AES/DES/MD5)

    总的来说,Cryptography单元是Delphi开发者实现加解密需求的一个便利工具,它简化了对AES、DES和MD5的使用,使开发者能够更专注于业务逻辑,而不是底层加密算法的实现。对于任何涉及数据安全的Delphi项目,这个单元...

    java和javascript之间的DES加密解密

    下面将详细阐述DES加密解密的基本原理、Java和JavaScript的实现方式以及如何在两者之间进行互操作。 1. **DES加密算法**: DES是一种分组密码,使用64位的数据块和56位的密钥进行操作。它通过一系列复杂的数学变换...

    Java使用Hutool实现AES、DES加密解密的方法

    本文将详细介绍如何在Java中使用Hutool库来实现AES和DES这两种常用的对称加密算法的加密解密过程。 首先,我们来了解一下AES和DES这两种加密算法的基本概念和特点。AES(高级加密标准)和DES(数据加密标准)都是...

    AES/ECB/PKCS5Padding 算法

    AES/ECB/PKCS5Padding 算法,用于数据加密,实现方式为Java。AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准

    JAVA实现DES加解密系统

    **JAVA实现DES加解密系统** DES(Data Encryption Standard)是一种经典的对称加密算法,它在信息安全领域有着广泛的应用。本文将深入探讨如何使用Java语言实现DES加解密系统,以及涉及的相关技术点。 首先,DES...

    des加密解密java实现版本

    在Java中实现DES加密和解密是一项常见的任务,通常涉及到`javax.crypto`包中的类和接口。本篇文章将详细阐述DES加密解密的Java实现过程。 首先,我们需要了解DES算法的基本原理。DES是一种块密码,它将明文数据分成...

    Java加密工具类,AES/DES/MD5/SHA/3DES

    AES和3DES用于对数据进行加解密,确保数据在传输过程中不被窃取。同时,3D和Elasticsearch标签可能暗示这些加密工具类在3D图形处理或Elasticsearch集群的数据安全中有所应用。 总的来说,Java提供的加密和哈希工具...

    java和C#通用des3加解密

    标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption Standard)的加强版——3DES(Triple DES)加解密算法。3DES是一种广泛使用的对称加密算法,通过三次应用DES的...

    JAVA实现3DES加密解密

    本篇文章将探讨如何使用Java来实现3DES的加密和解密操作。 首先,让我们了解3DES的工作原理。3DES是对原始DES算法的三次应用,它通过将密钥分为三个部分,然后执行加密、解密、再加密的过程,从而提高了安全性。这...

    java 实现aes加解密算法

    本篇文章将详细介绍如何在Java中实现AES加解密,帮助你理解并掌握这一核心技术。 AES算法是在DES(Data Encryption Standard)的基础上发展起来的,具有更高的安全性,支持128位、192位和256位的密钥长度,而默认的...

    SpringBoot控制器统一的响应体编码/加密与请求体解密的注解处理方式,支持MD5/SHA/AES/DES/RSA

    这样的需求可以通过自定义注解和处理器来实现,支持多种常见的加密算法,如MD5、SHA、AES、DES和RSA。以下是对这些知识点的详细阐述: 1. **注解处理**: - 在SpringBoot中,我们可以创建自定义注解,例如`@...

    java AES,DES,3DES,RAS,DSA 加密算法实现

    Java加密技术是保护数据安全的重要工具,涉及到的主要算法有AES、DES、3DES、RSA和DSA。这些算法在信息安全领域有着广泛的应用,如数据传输、密码存储、数字签名等。以下将详细介绍这些加密算法的原理及Java中的实现...

    java php DES 加密解密

    在Java中,DES加密解密主要通过`javax.crypto`包中的类来实现。首先,我们需要一个密钥,通常是8字节的字节数组。然后,使用`KeyGenerator`生成一个DES密钥。接下来,创建`Cipher`对象并初始化它,根据需要进行加密...

Global site tag (gtag.js) - Google Analytics