`
cheng888qi
  • 浏览: 284665 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

[总结]java常用加密算法工具类

    博客分类:
  • java
阅读更多

  把网站找到的MD5、SHA和Base64算法进行加密的方法,取其中最简单的实现,写了一个工具类,里面的加密实现都是直接调用java的JDK方法,没有具体原理实现,只为以后再用这些加密方法方便些。

import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

/**
 * 常用加密算法工具类
 * @author cq
 */
public class EncryptUtils {
	
	/**
	 * 用MD5算法进行加密
	 * @param str 需要加密的字符串
	 * @return MD5加密后的结果
	 */
	public static String encodeMD5String(String str) {
		return encode(str, "MD5");
	}

	/**
	 * 用SHA算法进行加密
	 * @param str 需要加密的字符串
	 * @return SHA加密后的结果
	 */
	public static String encodeSHAString(String str) {
		return encode(str, "SHA");
	}

	/**
	 * 用base64算法进行加密
	 * @param str 需要加密的字符串
	 * @return base64加密后的结果
	 */
	public static String encodeBase64String(String str) {
		BASE64Encoder encoder =  new BASE64Encoder();
		return encoder.encode(str.getBytes());
	}
	
	/**
	 * 用base64算法进行解密
	 * @param str 需要解密的字符串
	 * @return base64解密后的结果
	 * @throws IOException 
	 */
	public static String decodeBase64String(String str) throws IOException {
		BASE64Decoder encoder =  new BASE64Decoder();
		return new String(encoder.decodeBuffer(str));
	}
	
	private static String encode(String str, String method) {
		MessageDigest md = null;
		String dstr = null;
		try {
			md = MessageDigest.getInstance(method);
			md.update(str.getBytes());
			dstr = new BigInteger(1, md.digest()).toString(16);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return dstr;
	}
	
	public static void main(String[] args) throws IOException {
		String user = "oneadmin";
		System.out.println("原始字符串 " + user);
		System.out.println("MD5加密 " + encodeMD5String(user));
		System.out.println("SHA加密 " + encodeSHAString(user));
		String base64Str = encodeBase64String(user);
		System.out.println("Base64加密 " + base64Str);
		System.out.println("Base64解密 " + decodeBase64String(base64Str));
	}
}

 

3
3
分享到:
评论

相关推荐

    常用加密工具类(JAVA).zip

    本资源包“常用加密工具类(JAVA).zip”提供了12个不同的加密和排序工具类,以及一个log4j配置文件,旨在帮助开发者更方便地处理这些常见任务。以下是这些工具类及配置文件的详细介绍: 1. **MD5加密**:MD5...

    JAVA实现AES加密解密工具类

    在Java编程语言中,AES(Advanced Encryption Standard)是一种广泛应用的对称加密算法,用于保护数据的安全性。AES加密解密工具类是开发人员在处理敏感信息时常用的实用工具,它可以简化加密和解密过程。本篇文章将...

    JAVA上加密算法的实现用例

    `JAVA上加密算法的实现用例`这个主题涵盖了Java中加密算法的基本概念、常用的加密库以及具体的代码示例。 首先,Java提供了一个内置的加密库,名为Java Cryptography Extension (JCE),它允许开发者使用各种加密...

    Java AES DES加密算法的坑

    总结来说,理解和正确使用Java中的AES和DES加密算法,需要考虑密钥管理、初始化向量、填充模式、编码以及错误处理等多个方面,同时要关注加密过程中的安全风险和潜在陷阱。在实践中,结合合适的加密库和最佳实践,...

    java加密算法源码

    Java加密算法源码是开发人员在进行数据安全处理时常用的一种工具,涵盖了多种常见的加密算法,包括AES(高级加密标准)、DES(数据加密标准)、MD5(消息摘要算法5)、RSA(公钥加密技术)以及SHA(安全散列算法)。...

    java常用工具类

    以下是对标题和描述中提到的一些Java常用工具类的详细讲解: 1. **UUID类**: `java.util.UUID` 是用来生成全局唯一标识符的类。UUID(Universally Unique Identifier)是一种128位的数字,可以确保生成的ID在全球...

    RSA+AES 加密工具类 Java

    接下来,AES(Advanced Encryption Standard)是另一种常用的对称加密算法,它比RSA更快,但安全性稍弱,因为相同的密钥用于加密和解密。AES有多种工作模式,如ECB(电子密码本)、CBC(密码块链接)、CFB(密码反馈...

    Java 常用数值算法集

    本资料包"Java 常用数值算法集"汇聚了Java开发中常见的数值算法,旨在帮助开发者提升工作效率,解决实际问题。 一、数值计算基础 在Java中,基础的数值计算涉及浮点数运算、整数运算以及复数运算。浮点数运算通常...

    JAVA28个常用工具类

    7. **CryptoUtils.java**: 加密解密工具类,提供了各种加密算法,如MD5、SHA、AES、RSA等,用于数据的安全传输和存储。这通常涉及到`java.security`和`javax.crypto`包。 8. **IpAddress.java**: IP地址处理工具类...

    java开发常用工具类大全,程序员必备工具

    本文将详细解析“java开发常用工具类大全”中涉及的关键知识点,包括但不限于输入字符校验、数据转换、网络操作、加密解密、JSON处理、图像操作以及数据库操作。 1. **输入字符校验类**: 这类工具通常包含对字符...

    java开发常用工具类.zip

    6. **加解密算法工具类**: - 加解密工具类可能包括对AES、DES、RSA等加密算法的实现,用于数据的安全传输和存储。这些类通常会提供便捷的加密和解密方法,以及密钥的生成和管理。 7. **签名验证算法工具类**: -...

    Java_MD5加密工具类

    ### Java_MD5加密工具类详解 #### 一、概述 在信息安全领域,数据加密是确保数据安全的重要手段之一。MD5(Message-Digest Algorithm 5)作为一种常用的散列算法,在许多场景下被用来生成固定长度的摘要信息。本文...

    Java实现的进制转换工具类完整示例

    Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制字符数组或字符串的方法,以及将字符串...

    Java开发的多种加密解密工具包

    `javax.crypto.Cipher`类用于加密和解密操作,根据所选的加密算法进行配置。 7. **数字签名**:利用非对称加密技术,数字签名可以证明数据的完整性和发送者的身份。发送者使用私钥对数据的哈希值进行签名,接收者...

    常用java加密解密算法

    在信息安全领域,加密和...Java为开发者提供了强大的加密解密工具库,但开发者需要根据具体需求和安全要求来选择合适的加密算法,并注意跟进加密技术的发展动态,以避免使用已被破解或过时的加密算法,保证信息安全。

    常用的30个java工具类

    以下是对标题"常用的30个Java工具类"中提及的一些工具类及其功能的详细说明: 1. **MD5**: MD5(Message-Digest Algorithm 5)是一种广泛用于数据校验和加密的哈希函数。Java中的`java.security.MessageDigest`类...

    java加密解密工具

    "encryptTool"可能是一个包含加密解密功能的工具类或库,它可能提供了更方便的API来执行常见的加密解密任务。使用这样的工具可以简化开发过程,提高代码的可读性和可维护性。 总之,Java加密解密工具是保障信息安全...

    java实现Md5加盐加密算法

    对接接口时用到的一种常用加密算法,常用于验证签名,使用shiro-all-1.4.1.jar,可自行下载

    Java中常用的加密算法及其实现原理详解-保护信息的铠甲,静默守护你的隐私

    在信息安全领域,加密技术是确保数据安全的重要手段。...理解并熟练运用这些加密算法是Java开发者的必备技能,它们是构建安全应用的关键工具,能够在无形中保护用户的隐私,如同静默的铠甲,默默守护着信息安全。

    java常用工具类——个人总结

    以下是我个人对Java中常用工具类的总结,主要涉及了加密、文件上传和日期处理等核心领域。 1. **加密工具类**: - `java.security` 包下的 `MessageDigest` 类用于实现消息摘要算法,如MD5和SHA,常用于数据完整性...

Global site tag (gtag.js) - Google Analytics