SHA信息摘要

SHA算法是在MD4的基础上演进而来的,通过SHA算法能够获得一个固定长度的摘要信息。
 

SHA算法系列有SHA-1(也成为SHA),SHA-224,SHA-256,SHA-384和SHA-512这五种算法,通常后面四中算法并称为SHA-2算法,它们都是以长度来命名的。


SHA与MD算法的不同之处主要在于摘要长度,SHA算法的摘要长度更长,安全性更高
 
SHA算法的长度说明
 
 
SHA算法实现(类似MD5的实现)
1、Java自带的MessageDigest类
 注意:仅支持SHA-1,SHA-256,SHA-384和SHA-512
使用Java自带的MessageDigest类实现SHA和实现MD5一样,具体实现见例子代码
/**
     * SHA1实现消息摘要
     */
    public static byte[] SHA1() throws Exception{
        MessageDigest sha1 = MessageDigest.getInstance("SHA"); //注意这里填SHA,而不是SHA1
        byte[] result = sha1.digest("中国".getBytes("gbk"));
        System.out.println(result.length);
        return result;
    }
    
    
    /**
     * SHA1实现消息摘要
     */
    public static byte[] SHA256() throws Exception{
        MessageDigest sha1 = MessageDigest.getInstance("SHA-256"); //其他的SHA2算法同理
        byte[] result = sha1.digest("中国".getBytes("gbk"));
        System.out.println(result.length);
        return result;
    }  
 
2、Apache的消息摘要工具类org.apache.commons.codec.digest.DigestUtils实现
DigestUtils.sha256("中国".getBytes("gbk"));  //其他的摘要算的函数名以算法名进行类推





原文地址:https://www.cnblogs.com/itmanxgl/p/8af82b2e7eb5a3149b1598f06cca6d37.html