All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.anlavn.hash.SHA Maven / Gradle / Ivy

There is a newer version: 6.70.10.2
Show newest version
package com.anlavn.hash;
// Make By Bình An || AnLaVN || KatoVN

import com.anlavn.file.Log;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**Lớp SHA256 chỉ hỗ trợ mã hóa đối tượng, giải mã nó là bất khả thi.
 * SHA256 sử dụng hàm băm mật mã học Secure Hash Algorithm 2 được thiết kế bởi Cơ quan An ninh Quốc gia Hoa Kỳ với giá trị băm dài 256-bit.
 * 
Đảm bảo rằng lớp đối tượng của bạn đã "implements Serializable". * @author AnLaVN */ public class SHA { private static String Encrypt(Types type, final byte[] bytes){ try { final MessageDigest digest = MessageDigest.getInstance(type.toString().replaceFirst("_", "-")); final byte[] hash = digest.digest(bytes); final StringBuilder hexString = new StringBuilder(); for (int i = 0; i < hash.length; i++) { final String hex = Integer.toHexString(0xff & hash[i]); if (hex.length() == 1) { hexString.append('0'); } hexString.append(hex); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { Log.add("!!! Error try to Encrypt SHA256 !!!\n\tError code: " + e.toString()); return null; } } /**Họ SHA (Thuật toán băm an toàn) chỉ định một họ gồm 8 hàm băm khác nhau. */ public enum Types{ /** Ðầu ra: 224 bit ~ 56 ký tự */ SHA_224, /** Ðầu ra: 256 bit ~ 64 ký tự */ SHA_256, /** Ðầu ra: 384 bit ~ 96 ký tự */ SHA_384, /** Ðầu ra: 512 bit ~ 128 ký tự */ SHA_512, /** Ðầu ra: 224 bit ~ 56 ký tự */ SHA3_224, /** Ðầu ra: 256 bit ~ 64 ký tự */ SHA3_256, /** Ðầu ra: 384 bit ~ 96 ký tự */ SHA3_384, /** Ðầu ra: 512 bit ~ 128 ký tự */ SHA3_512 } /**Sử dụng phương thức này để mã hóa đối tượng gốc. * @param type là loại Họ SHA dùng để mã hoá.
* @param objToEncrypt là đối tượng cần mã hóa.
* @return mã băm SHA256 của đối tượng ban đầu. */ public static final String Encrypt(Types type, final Object objToEncrypt) { try { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(objToEncrypt); oos.flush(); return Encrypt(type, bos.toByteArray()); } catch (IOException e) { Log.add("!!! Error try to Encrypt SHA256 an Object. Can not parse Object to bytes. !!!\n\tError code: " + e.toString()); return null; } } /**Sử dụng phương thức này để mã hóa chuỗi gốc. * @param type là loại Họ SHA dùng để mã hoá.
* @param strToEncrypt là chuỗi cần mã hóa.
* @return mã băm SHA256 của chuỗi ban đầu. */ public static final String Encrypt(Types type, final String strToEncrypt) { return Encrypt(type, strToEncrypt.getBytes()); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy