`
wsmajunfeng
  • 浏览: 498118 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java实现md5和aes加密解密

 
阅读更多

一、MD5加密

写道
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {

/**
* 通过MD5加密算法返回加密后的字符串
*
* @param text 明文(要加密的字符串)
* @return
*/
public static String createMD5(String text) {
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {// 理论上不会有这个异常
throw new IllegalStateException("System doesn't support MD5 algorithm.");
}
md.update(text.getBytes());
byte b[] = md.digest();
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
int i = b[offset];
if (i < 0) {
i += 256;
}
if (i < 16) {
buf.append("0");// 不足两位,补0
}
buf.append(Integer.toHexString(i));
}
return buf.toString();
}

}

 二、AES加密

写道

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

/**
* This program generates a AES key, retrieves its raw bytes, and then reinstantiates a AES key from the key bytes. The
* reinstantiated key is used to initialize a AES cipher for encryption and decryption.
*/
public class AES {

private static final String AES = "AES";

private static final String CRYPT_KEY = "YUUAtestYUUAtest";

/**
* 加密
*
* @param encryptStr
* @return
*/
public 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
*/
public static byte[] decrypt(byte[] src, String key) throws Exception {
Cipher cipher = Cipher.getInstance(AES);
SecretKeySpec securekey = new SecretKeySpec(key.getBytes(), AES);// 设置加密Key
cipher.init(Cipher.DECRYPT_MODE, securekey);// 设置密钥和解密形式
return cipher.doFinal(src);
}

/**
* 二行制转十六进制字符串
*
* @param b
* @return
*/
public 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();
}

public 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) {
}
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) {
}
return null;
}

public static void main(String[] args) {
String ID = "11112222";

String idEncrypt = encrypt(ID);
System.out.println(idEncrypt);
String idDecrypt = decrypt(idEncrypt);
System.out.println(idDecrypt);
}

}
 
分享到:
评论

相关推荐

    java后台及前端js使用AES互相加解密及前端md5加密

    综上所述,本主题涵盖了Java和JavaScript中数据加密的重要技术,包括AES的双向加解密和MD5的单向加密。在实际应用中,这些技术可以帮助保护用户数据,确保网络通信的安全。在开发过程中,要确保遵循最佳安全实践,...

    MD5+AES加密解密demo

    这个“AES-demo”可能包含了实现这些功能的Java代码示例,可以帮助开发者理解和应用MD5与AES加密解密技术。学习和理解这部分代码有助于提升在数据安全领域的编程技能,同时需要注意在实际项目中,应根据实际需求选择...

    java实现SHA1、SHA、MD5、AES加密、AES解密、BASE64解密、BASE64加密,以及BASE64 jar和源码

    在这个压缩包中,包含的资源可以帮助我们理解并实现SHA1、SHA、MD5、AES加密与解密,以及BASE64编码和解码。下面我们将详细探讨这些加密算法和它们在Java中的实现。 1. **SHA(Secure Hash Algorithm)**: SHA是一...

    JS实现AES-GCM加密,java实现AES-GCM解密。.md

    在工作中会经常遇到密码加密,URL传参要进行加密,在此我参照一个例子将用java实现的AES加解密程序用实例写出。JS实现AES-GCM加密,java实现AES-GCM解密

    前后端API交互使用RSA和AES加密解密(js、Java).md

    前后端API交互使用RSA和AES加密解密(js、Java).md

    JAVA AES加密解密

    * 编码工具类 * 1.将byte[]转为各种进制的字符串 * 2.base 64 encode * 3.base 64 decode ...结合base64实现md5加密 * 7.AES加密 * 8.AES加密为base 64 code * 9.AES解密 * 10.将base 64 code AES解密

    java加密工具类 md5 aes base64 urlencode

    加密工具类 包含md5加密 base加密解密 md5加密 aes加密解密 urlencoude

    4.nodejs和java的AES加密结果保持一致.doc

    在 Node.js 和 Java 中实现 AES 加密结果保持一致是非常重要的。以下是相关知识点的详细解释: AES 加密简介 AES(Advanced Encryption Standard)是一种对称加密算法,主要用于保护数据的机密性和完整性。AES ...

    java实现文件加密解密

    "java实现文件加密解密" Java 实现文件的加密与解密是指利用 Java 语言将资源文件(包括图片、动画等类型)进行简单的加密和解密。这种策略的原因和好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,...

    base64、DES、AES、SHA-1、MD5 字符串加密和解密 编码和解码 大全

    这个进行字符串加密 和解密 , 编码和 解码 包括(base64、DES、AES、SHA-1、MD5 ) ,都是亲测的,保证可用 这个进行字符串加密 和解密 , 编码和 解码 包括(base64、DES、AES、SHA-1、MD5 ) ,都是亲测的,保证...

    JAVA工具类(整合,xml,json,MD5,加密解密)

    在Java编程中,工具类是经常被开发人员用于简化常见任务的类库。这些类通常包含静态方法,提供各种实用功能,...对于处理XML、JSON数据,进行MD5哈希计算以及进行加密解密的Java开发者来说,这是一份非常有价值的资源。

    MD5、AES、DES加密的java实现

    本文介绍了三种常见的加密算法——MD5、AES 和 DES 在 Java 中的实现。这些算法各有特点,适用于不同的场景。MD5 作为单向哈希函数主要用于数据完整性校验;AES 和 DES 作为对称加密算法,可用于数据的加密和解密。...

    java 字符串加密解密

    本项目提供了四种常见的加密解密算法的Java实现:BASE64、AES、DES和MD5。接下来,我们将深入探讨这四种算法及其在Java中的应用。 首先,BASE64是一种编码方式,而非真正的加密算法。它将任意二进制数据转化为ASCII...

    RAS、Md5、 AES java加密实现

    本文将详细介绍Java中RAS(RSA算法)、MD5和AES这三种加密方法的实现。 首先,RAS全称为“Rivest-Shamir-Adleman”,是一种非对称加密算法。在Java中,我们可以使用Java Cryptography Extension (JCE) 库来实现RSA...

    JS前台加密,java后台解密实现

    JavaScript提供了多种加密库和算法来实现这一目标,例如使用AES(高级加密标准)、RSA(公钥加密技术)或MD5(消息摘要算法5)等。 1. **AES加密**:AES是一种块加密算法,适用于大量数据的快速加密。在JavaScript...

    文件GZip压缩AES加密反向解密解压缩代码和jar

    本资源包“文件GZip压缩AES加密反向解密解压缩代码和jar”提供了完整的Java实现,使得开发者能够方便地对文件进行GZip压缩、AES加密,以及后续的解密和解压缩操作。下面将详细解释这些技术及其应用。 首先,GZip...

    AES+RSA加密解密(js和java互通)

    在这个项目中,我们关注的是"AES+RSA加密解密",这是两种广泛使用的加密算法,适用于JavaScript和Java环境中的前后端数据交换。下面将详细介绍这两个加密算法以及如何实现它们的互通。 **AES(Advanced Encryption ...

    java加密解密工具

    以下是一个简单的AES加密解密示例: ```java import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import java.security.SecureRandom; public class AESEncryptDemo ...

    java和js的加密包包含RSA、AES和MD5

    在Java和JavaScript之间,AES可以用于同一端内的加密解密,例如,服务器端可以使用AES加密敏感数据,然后发送给前端,前端解密后使用。由于AES是对称加密,所以加密和解密使用的是同一密钥,因此密钥的安全传递是一...

    Java与Node.js利用AES加密解密出相同结果的方法示例

    在本文中,我们将探讨如何在Java和Node...通过遵循这些一致性原则,可以确保Java和Node.js环境中的AES加密解密结果匹配。在实际开发中,确保跨平台的加密解密兼容性至关重要,尤其是在分布式系统和多语言交互的场景下。

Global site tag (gtag.js) - Google Analytics