美文网首页
sha-256算法进行加密java

sha-256算法进行加密java

作者: _花 | 来源:发表于2022-05-17 11:35 被阅读0次

利用Apache的工具类实现加密,使用commons-codec包中的DigestUtils算法工具类(入参支持字符串、字节数组、文件流等)

依赖包

<dependency>
 <groupId>commons-codec</groupId>
 <artifactId>commons-codec</artifactId>
 <version>${common-codec.version}</version>
</dependency>

代码

import java.security.MessageDigest;
import java.security.Security;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Hex;
import org.apache.commons.codec.digest.DigestUtils;
 
public abstract class SHACoder {
 
    /**
     * SHA加密
     * 
     * @param data 待加密数据
     * @return byte[] 消息摘要
     * @throws Exception
     */
    public static byte[] encodeSHA(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.sha(data);
    }
 
    /**
     * SHAHex加密
     * 
     * @param data 待加密数据
     * @return String 消息摘要
     * @throws Exception
     */
    public static String encodeSHAHex(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.shaHex(data);
    }
 
    /**
     * SHA-224加密
     * 
     * @param data
     *            待加密数据
     * @return byte[] 消息摘要
     * 
     * @throws Exception
     */
    public static byte[] encodeSHA224(byte[] data) throws Exception {
        // 加入BouncyCastleProvider支持
        Security.addProvider(new BouncyCastleProvider());
 
        // 初始化MessageDigest
        MessageDigest md = MessageDigest.getInstance("SHA-224");
 
        // 执行消息摘要
        return md.digest(data);
    }
 
    /**
     * SHA-224加密
     * 
     * @param data
     *            待加密数据
     * @return byte[] 消息摘要
     * @throws Exception
     */
    public static String encodeSHA224Hex(byte[] data) throws Exception {
 
        // 执行消息摘要
        byte[] b = encodeSHA224(data);
 
        // 做十六进制编码处理
        return new String(Hex.encode(b));
 
    }
 
    /**
     * SHA256加密
     * 
     * @param data 待加密数据
     * @return byte[] 消息摘要
     * @throws Exception
     */
    public static byte[] encodeSHA256(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.sha256(data);
    }
 
    /**
     * SHA256Hex加密
     * 
     * @param data 待加密数据
     * @return String 消息摘要
     * @throws Exception
     */
    public static String encodeSHA256Hex(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.sha256Hex(data);
    }
 
    /**
     * SHA384加密
     * 
     * @param data 待加密数据
     * @return byte[] 消息摘要 
     * @throws Exception
     */
    public static byte[] encodeSHA384(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.sha384(data);
    }
 
    /**
     * SHA384Hex加密
     * 
     * @param data 待加密数据
     * @return String 消息摘要 
     * @throws Exception
     */
    public static String encodeSHA384Hex(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.sha384Hex(data);
    }
 
    /**
     * SHA512Hex加密
     * 
     * @param data 待加密数据
     * @return byte[] 消息摘要
     * @throws Exception
     */
    public static byte[] encodeSHA512(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.sha512(data);
    }
 
    /**
     * SHA512Hex加密
     * 
     * @param data 待加密数据
     * @return String 消息摘要
     * @throws Exception
     */
    public static String encodeSHA512Hex(String data) throws Exception {
 
        // 执行消息摘要
        return DigestUtils.sha512Hex(data);
    }
 
}

转自:https://blog.csdn.net/dh753655485/article/details/106947206/

相关文章

  • sha-256算法进行加密java

    利用Apache的工具类实现加密,使用commons-codec包中的DigestUtils[https://bl...

  • 2018-06-30

    比特币使用的加密算法是椭圆加密算法 。该算法是非对称加密算法 挖矿使用的算法是sha-256算法,该算法也是一种非...

  • 加密算法与Https

    加密 散列算法加密不可反解的抽样算法MD5,SHA-1,SHA-256目前,MD5一般会被碰撞攻击,以及有一些算能...

  • java如何对字符串进行加密 ?

    如题, 下面是lz使用java内置的DES算法进行的加密算法, 希望对你有用

  • encyption&decyption

    0, 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA 常用加密算法的Java实现总结(二) ...

  • Java实现常用的三种加密算法详解

    Java实现常用的三种加密算法详解 信息摘要算法、对称加密算法以及非对称加密算法。本文将利用Java实现这几种常见...

  • iOS-探究密码学-加密算法特性总结

    加密算法分为三大类:哈希算法、对称加密算法、非对称加密算法。 加密算法特性: 加密算法都是对二进制数据进行加密哦!...

  • Java中的加密算法(二)

    1.对称加密算法1.1对称加密算法-DES 在Java中的加密算法(一)中主要讲解了密码中常用的术语,Java安全...

  • 几种常见的加密算法及 Java 实现

    介绍 本文主要对加密算法做个概况性的介绍,然后给出几种简单的加密算法 Java 实现。 1. 算法种类 单向加密 ...

  • java与C同样代码,结果不一样

    在项目中使用了一个加密算法使用的 异或算法进行加密,java与c同样的代码,结果却不同,问题原因在与c语言的 un...

网友评论

      本文标题:sha-256算法进行加密java

      本文链接:https://www.haomeiwen.com/subject/phqaurtx.html