Android 加密之SHA加密

1.简介

 

安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。

 

 

 

2.家族成员

SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布;是美国的政府标准。后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的杂凑函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑;虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的杂凑算法。

 

 

 

3.代码说明

 

工具类

package com.wjn.okhttpmvpdemo.mode.utils;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;

/**
 * SHA 加密
 */

public class SHAUtil {

    /***
     * SHA加密 方法
     */

    public static String shaEncode(String inStr) {
        MessageDigest sha = null;
        try {
            sha = MessageDigest.getInstance("SHA");
        } catch (Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
            return "";
        }

        byte[] byteArray = new byte[0];
        try {
            byteArray = inStr.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        byte[] md5Bytes = sha.digest(byteArray);
        StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16) {
                hexValue.append("0");
            }
            hexValue.append(Integer.toHexString(val));
        }
        return hexValue.toString();
    }

}

 

 

调用

/**
     * SHA加密
     * */

    private void mySHAMethod(){
        String str1="password123456";
        String sha1= SHAUtil.shaEncode(str1);

        String str2="今天是你的生日,我的中国236598";
        String sha2= SHAUtil.shaEncode(str2);

        Log.d("TAG",str1+"  加密后sha1----:"+sha1);
        Log.d("TAG","加密后长度----:"+sha1.length());

        Log.d("TAG",str2+"  加密后sha2----:"+sha2);
        Log.d("TAG","加密后长度----:"+sha2.length());
    }

 

 

结果

Android 加密之SHA加密_第1张图片

 

 

你可能感兴趣的:(Android,数据加密)