`

转:Java Base64、AES、SHA1、MD5加密算法

阅读更多

转载链接:http://www.open-open.com/lib/view/open1392185662160.html

package com.example.decript;
 
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
 
public class DecriptTest {
 
    public static String SHA1(String decript) {
        try {
            MessageDigest digest = java.security.MessageDigest
                    .getInstance("SHA-1");
            digest.update(decript.getBytes());
            byte messageDigest[] = digest.digest();
            // Create Hex String
            StringBuffer hexString = new StringBuffer();
            // 字节数组转换为 十六进制 数
            for (int i = 0; i < messageDigest.length; i++) {
                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexString.append(0);
                }
                hexString.append(shaHex);
            }
            return hexString.toString();
 
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }
 
    public static String SHA(String decript) {
        try {
            MessageDigest digest = java.security.MessageDigest
                    .getInstance("SHA");
            digest.update(decript.getBytes());
            byte messageDigest[] = digest.digest();
            // Create Hex String
            StringBuffer hexString = new StringBuffer();
            // 字节数组转换为 十六进制 数
            for (int i = 0; i < messageDigest.length; i++) {
                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexString.append(0);
                }
                hexString.append(shaHex);
            }
            return hexString.toString();
 
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }
 
    public static String MD5(String input) {
        try {
            // 获得MD5摘要算法的 MessageDigest 对象
            MessageDigest mdInst = MessageDigest.getInstance("MD5");
            // 使用指定的字节更新摘要
            mdInst.update(input.getBytes());
            // 获得密文
            byte[] md = mdInst.digest();
            // 把密文转换成十六进制的字符串形式
            StringBuffer hexString = new StringBuffer();
            // 字节数组转换为 十六进制 数
            for (int i = 0; i < md.length; i++) {
                String shaHex = Integer.toHexString(md[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexString.append(0);
                }
                hexString.append(shaHex);
            }
            return hexString.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }
 
    /**
     * 加密
     *
     * @param content
     *            需要加密的内容
     * @param password
     *            加密密码
     * @return
     */
    public static byte[] encryptAES(String content, String password) {
        try {
            KeyGenerator kgen = KeyGenerator.getInstance("AES");
            kgen.init(128, new SecureRandom(password.getBytes()));
            SecretKey secretKey = kgen.generateKey();
            byte[] enCodeFormat = secretKey.getEncoded();
            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
            byte[] byteContent = content.getBytes("utf-8");
            cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
            byte[] result = cipher.doFinal(byteContent);
            return result; // 加密
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        }
        return null;
    }
 
    /**
     * 解密
     *
     * @param content
     *            待解密内容
     * @param password
     *            解密密钥
     * @return
     */
    public static byte[] decryptAES(byte[] content, String password) {
        try {
            KeyGenerator kgen = KeyGenerator.getInstance("AES");
            kgen.init(128, new SecureRandom(password.getBytes()));
            SecretKey secretKey = kgen.generateKey();
            byte[] enCodeFormat = secretKey.getEncoded();
            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
            cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
            byte[] result = cipher.doFinal(content);
            return result; // 加密
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        }
        return null;
    }
 
    /**
     * BASE64解密
     *
     * @param key
     * @return
     * @throws Exception
     */
    public static String decryptBASE64(String key) {
 
        return "";
    }
 
    /**
     * BASE64加密
     *
     * @param key
     * @return
     * @throws Exception
     */
    public static String encryptBASE64(String key) {
 
        return "";
    }
}

 

 

分享到:
评论

相关推荐

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

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

    Vue-常用加密(MD5,DES,SHA256,BASE64,SHA1,RSA)

    在 Vue 中,常见的加密算法包括 MD5、DES、SHA256、BASE64、SHA1、RSA 等。BASE64 只是一种编码格式,并不是加密算法,但常用于在 HTTP 环境下传递较长的标识信息。 加密算法的选择需要根据实际情况进行选择,考虑...

    加密js工具类:base64,md5,sha1

    然而,需要注意的是,由于Base64和MD5的可逆性(Base64可以解码,MD5和SHA1虽然不可逆,但可以通过碰撞攻击),在涉及高度机密性的场景下,应使用更强大的加密算法,如AES(Advanced Encryption Standard)。

    Delphi AES DES MD5 RSA BASE64等加密算法源码实例集.rar

    Delphi加密算法集,包括了Delphi AES DES MD5 RSA BASE64 2DES 3DES Blowfish CRC32-Static SHA等 常用的加密算法用法实例,比较不错的Delphi加密实例代码了,浅显易懂而且实用的常见加密算法实例,包括字符串和文件...

    java加密算法:Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法

    java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...

    java实现Base64、MD5、SHA、AES、RAS等加解密js库文件

    本资源包"java实现Base64、MD5、SHA、AES、RAS等加解密js库文件"集中了这些常见加密算法的JavaScript实现,方便在前端或后端进行数据处理。下面将详细介绍这些加密技术及其应用。 1. **Base64**:Base64是一种将二...

    Delphi加密算法大全2DES_3DES_3DES3_AES_BASE64_BLOWFISH_CRC_DES_MD5_RSA_SHA

    本资料包涵盖了多个常见的加密算法,包括2DES、3DES、3DES3、AES、Base64、Blowfish、CRC、DES、MD5以及RSA和SHA系列。以下将对这些算法进行详细介绍。 1. **2DES(双密钥数据加密标准)**:基于DES(Data ...

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

    3. **前端JavaScript AES加解密**:在JavaScript环境中,由于安全性限制,不能直接操作底层的加密算法,所以通常需要依赖第三方库,如CryptoJS。这个库提供了与Java类似的方法,可以方便地进行AES加解密。前端使用...

    Java实现的对称加密算法AES定义与用法详解

    "Java实现的对称加密算法AES定义与用法详解" 对称加密算法AES是当前使用最多的加密算法之一,其主要特点是高级的、安全的、快速的和灵活的。下面我们将详细介绍Java实现的对称加密算法AES的定义、特点、用法及使用...

    java加密工具包AES SHA SHA1 SHA256 BASEENCODE64

    Java加密工具包是Java开发中用于数据安全的重要组件,它提供了多种加密算法和技术,包括AES、SHA、SHA1、SHA256以及BASE64编码。这些技术在信息安全领域扮演着核心角色,确保数据的隐私性和完整性。让我们逐一探讨...

    Delphi_d7加密算法大全.rar

    这个压缩包包含了MD5、Base64、CRC32、DES、AES、Blowfish、RSA以及SHA等算法的详细使用案例,为开发者提供了丰富的参考资料。 1. **MD5(Message-Digest Algorithm 5)**:MD5是一种广泛使用的哈希函数,它将任意...

    aes-base64-sha256的js加密解密

    在给定的压缩包文件中,我们关注的是使用AES(Advanced Encryption Standard)加密算法,Base64编码以及SHA256哈希算法的JavaScript实现。这些技术通常用于在网络上传输敏感信息,如用户密码、个人信息等,以防止...

    MD5 、base64加密技术

    MD5和Base64是两种在信息技术领域广泛使用的编码与加密技术,它们各自有其...总之,MD5和Base64是信息技术中基础且实用的技术,但在现代网络安全需求下,需要结合更强大的加密算法和安全策略,以保障数据的安全和隐私。

    各种加密解密实现(Base64加密、MD5、SHA、AES RAS等)

    本文将详细介绍几种常见的加密算法:Base64、MD5、SHA、AES以及RAS,并探讨它们的应用场景和特点。 首先,Base64是一种简单的编码方式,而非严格的加密算法。它将任意二进制数据转换为可打印的ASCII字符,常用于...

    MD5加密算法

    在文件名列表中,"SHA加密算法.docx"可能是关于SHA1或者其他SHA系列算法的详细说明,包括SHA-256、SHA-384和SHA-512等。而"EncryptionAlgorithm"可能包含了对各种加密算法的概述,包括对称加密(如AES)、非对称加密...

    java实现的AES加密算法完整实例

    AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,它基于块加密,使用相同的密钥进行加密和解密。在Java中,AES加密通常通过Java Cryptography Extension (JCE)库来实现。以下是对给定的`AESCrypt...

    QQ加密算法--MD5和BASE64的双重加密算法

    QQ加密算法采用了MD5和BASE64两种技术,形成了一种双重加密机制,以提高数据的安全性和保密性。这两种加密方法在IT行业中被广泛应用,尤其是MD5作为一种散列(哈希)函数,而BASE64则是一种编码方式。 首先,我们来...

    iOS常用加密方法(aes、md5、base64)

    本篇文章将详细介绍iOS中常用的三种加密方法:AES(高级加密标准)、MD5(消息摘要算法5)以及Base64编码。 首先,AES是一种对称加密算法,全称为Advanced Encryption Standard,广泛应用于数据加密。它基于替换和...

    base64MD5加密文件工具

    在IT领域,安全性和隐私保护是至关重要的,这就引出了我们今天的话题——“base64MD5加密文件工具”。这个工具结合了两种常见的哈希和编码技术:Base64编码和MD5散列函数,用于增强数据的安全性。这两种技术在不同的...

    java 各种加密方式,MD5加密算法

    md5,aes,des,des3,rsa,sha,base64加密解密实例,含有所需jar包,注释详细,导入项目直接可用。

Global site tag (gtag.js) - Google Analytics