在Java中的SHA-384哈希加密

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

SHA-2加密散列函数系列由六个散列函数组成。这些是:

  1. SHA-224,具有224位散列值
  2. SHA-256,具有256位哈希值
  3. SHA-384,具有384位哈希值
  4. SHA-512,具有512位哈希值
  5. SHA-512/224,具有512位散列值
  6. SHA-512/256,具有512位哈希值

其中,SHA-256和SHA-512是最常被接受和使用的散列函数,分别用32位和64位字计算。SHA-224和SHA-384分别是SHA-256和SHA-512的截断版本,使用不同的初始值计算。

要在Java中计算加密散列值,请在java.security包下使用MessageDigest类。

MessagDigest类提供以下加密哈希函数来查找文本的哈希值,如下所示:

  • MD2
  • MD5
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512

这些算法在名为getInstance()的静态方法中初始化。选择算法后,将计算消息摘要值,并将结果作为字节数组返回。使用BigInteger类将结果字节数组转换为其signum表示。然后将此表示转换为十六进制格式以获得预期的MessageDigest。

例子:

输入:hello world 
输出:
fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd

输入:Breakyizhan
输出:
7f21a7546f9499084338a0d031916963751803f521515afe6b8c9a6f53cefef47b3c9f6ce8ab92916eb2da12f7b95900

程序:下面的程序显示了Java中SHA-384哈希的实现。

// Java program to calculate SHA-384 hash value 

import java.math.BigInteger; 
import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 

public class GFG { 
	public static String encryptThisString(String input) 
	{ 
		try { 
			// getInstance() method is called with algorithm SHA-384 
			MessageDigest md = MessageDigest.getInstance("SHA-384"); 

			// digest() method is called 
			// to calculate message digest of the input string 
			// returned as array of byte 
			byte[] messageDigest = md.digest(input.getBytes()); 

			// Convert byte array into signum representation 
			BigInteger no = new BigInteger(1, messageDigest); 

			// Convert message digest into hex value 
			String hashtext = no.toString(16); 

			// Add preceding 0s to make it 32 bit 
			while (hashtext.length() < 32) { 
				hashtext = "0" + hashtext; 
			} 

			// return the HashText 
			return hashtext; 
		} 

		// For specifying wrong message digest algorithms 
		catch (NoSuchAlgorithmException e) { 
			throw new RuntimeException(e); 
		} 
	} 

	// Driver code 
	public static void main(String args[]) throws
								NoSuchAlgorithmException 
	{ 

		System.out.println("HashCode Generated by SHA-384 for: "); 

		String s1 = "Breakyizhan"; 
		System.out.println("\n" + s1 + " : " + encryptThisString(s1)); 

		String s2 = "hello world"; 
		System.out.println("\n" + s2 + " : " + encryptThisString(s2)); 
	} 
} 

输出:

HashCode Generated by SHA-384 for: 

Breakyizhan : 7f21a7546f9499084338a0d031916963751803f521515afe6b8c9a6f53cefef47b3c9f6ce8ab92916eb2da12f7b95900

hello world : fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd

  •   本文标题:在Java中的SHA-384哈希加密 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/6770.html

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读