zoukankan      html  css  js  c++  java
  • 可以进行SHA-1,SHA-224,SHA-256,SHA-384,SHA-512五种算法签名的工具类,以及简单说明

    import java.security.MessageDigest;

    public class SignatureSHA {
    public static String signSHA(String sha,Object ...arguments){
    try{
    StringBuffer stringSignTemp = new StringBuffer();
    for (int i = 0; i < arguments.length; i++) {
    stringSignTemp.append(arguments[i]);
    }
    System.out.println("stringSignTemp:"+stringSignTemp);
    MessageDigest sha1 = MessageDigest.getInstance(sha);//可以进行,SHA-1,SHA-224,SHA-256,SHA-384,SHA-512五种算法签名
    sha1.update(stringSignTemp.toString().getBytes("utf-8"));
    byte[] sha1Bytes = sha1.digest();
    String sign = bin2hex(sha1Bytes);
    return sign.toString();
    }catch(Exception e){
    return null;
    }
    }
    public static String bin2hex(byte[] bin)
    {
    char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
    StringBuilder sb = new StringBuilder();
    for (int i = 0 ; i < bin.length; i++)
    {
    char upper = hex[(bin[i] & 0xf0) >>> 4];
    char lower = hex[(bin[i] & 0x0f)];
    sb = sb.append(upper).append(lower);
    }
    return sb.toString();
    }
    public static void main(String[] args) {
    String sign=signSHA("SHA-224","123",111,888);//假设123是加密密钥
    System.out.println(sign);
    }
    }

    SHA是常用的数据加密算法,

    特点:1.加密后秘闻长度定长;2.与md5加密一样不可逆,无法解密;

    验证方法: 数据+密钥,密钥是任意长度字符串,需要进行签名的数据,把密钥和数据拼起来,然后加密。

    SHA-1,SHA-224,SHA-256,SHA-384,SHA-512五种算法签名的加密原理类似。

  • 相关阅读:
    uIP的ARP协议分析
    如何使函数不生成执行代码
    计算机网络基础
    [Hive
    [Hive
    [Hive
    [Hive
    [Hive
    [Hive
    [Hive
  • 原文地址:https://www.cnblogs.com/zyf-yxm/p/9014861.html
Copyright © 2011-2022 走看看