JAVA 的 SHA-256 和 SHA-512 两种 Hash 算法的调用

原创 2015年11月18日 02:31:40

JAVA 已经实现了 SHA-256 和 SHA-512 两种 Hash 算法

利用 java.security.MessageDigest 调用已经集成的 Hash 算法

创建 Encrypt 对象,并调用 SHA256 或者 SHA512 并传入要加密的文本信息,分别得到 SHA-256 或 SHA-512 两种被加密的 hash 串。

若要改为 MD5 算法,修改传入参数 strType 为 "MD5" 即可得到 MD5 加密功能。

package test;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Encrypt
{

  /**
   * 传入文本内容,返回 SHA-256 串
   * 
   * @param strText
   * @return
   */
  public String SHA256(final String strText)
  {
    return SHA(strText, "SHA-256");
  }

  /**
   * 传入文本内容,返回 SHA-512 串
   * 
   * @param strText
   * @return
   */
  public String SHA512(final String strText)
  {
    return SHA(strText, "SHA-512");
  }

  /**
   * 字符串 SHA 加密
   * 
   * @param strSourceText
   * @return
   */
  private String SHA(final String strText, final String strType)
  {
    // 返回值
    String strResult = null;

    // 是否是有效字符串
    if (strText != null && strText.length() > 0)
    {
      try
      {
        // SHA 加密开始
        // 创建加密对象 并傳入加密類型
        MessageDigest messageDigest = MessageDigest.getInstance(strType);
        // 传入要加密的字符串
        messageDigest.update(strText.getBytes());
        // 得到 byte 類型结果
        byte byteBuffer[] = messageDigest.digest();

        // 將 byte 轉換爲 string
        StringBuffer strHexString = new StringBuffer();
        // 遍歷 byte buffer
        for (int i = 0; i < byteBuffer.length; i++)
        {
          String hex = Integer.toHexString(0xff & byteBuffer[i]);
          if (hex.length() == 1)
          {
            strHexString.append('0');
          }
          strHexString.append(hex);
        }
        // 得到返回結果
        strResult = strHexString.toString();
      }
      catch (NoSuchAlgorithmException e)
      {
        e.printStackTrace();
      }
    }

    return strResult;
  }
}



Q群讨论:236201801

.



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java实现SHA-256加密的两种方式

最近在做注册的一个功能,密码要进行加密,一开始想用MD5加密,但是听说被破解了已经,于是想玩玩SHA-256加密。学习了下,总结两种方法供后面参考...

Java SHA-256 算法实例

一)java.security.MessageDigest 类:   此 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JAVA的MD5和SHA-256和SHA-512 的 Hash 算法的调用

class Encrypt { /** * 传入文本内容,返回 SHA-256 串 * * @param strText * @return */ publi...

关于java散列算法(MD5 SHA-1 SHA-128 SHA-256..)的一点总结

java中提供了丰富的散列算法,在java.security包中,作用是什么就不多说了,今天简要介绍一下他们的用法 1、单纯的使用算法进行计算 public String getMD5(byte[...

Java/Android中SHA1和SHA256加密

SHA1(Secure Hash Algorithm,译作安全散列算法)是Hash算法中的一种,适合用于数字签名数据认证,加密过程不可逆不能进行解密。 MD5与SHA1都是Hash算法,MD5输...

Java SHA-256 算法实例

一)java.security.MessageDigest 类:    此 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希...

java实现HMACSHA256加密签名

java实现HMACSHA256加密签名,需要按照字典排序的朋友可以用SortedMap message=new TreeMap();进行排序后在加密/** * @version 1.0 * @pro...

SHA-256算法实现

转载来自于 《基于FPGA的SHA-256算法实现》和 http://www.cnblogs.com/tofixer/p/3498048.html SHA-256 算法输入报文的最大长度不超过2^64...

【修正BUG】SHA-256算法 C语言实现

SHA-256算法 C语言实现实现了计算字符串,文件的SHA-256值 算法来自: Federal.Information.Processing.Standards.Publication.18...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA 的 SHA-256 和 SHA-512 两种 Hash 算法的调用
举报原因:
原因补充:

(最多只允许输入30个字)