java使用SHA1、SHA、MD5、AES、Base64加密算法总结详解编程语言

java使用SHA1、SHA、MD5、AES、Base64加密算法总结详解编程语言

1.使用SHA1加密;

2.使用SHA加密;

3.使用MD5加密;

4.使用AES加密;

5.使用Base64加密;

下面来看代码示例:

import java.io.UnsupportedEncodingException;

import java.security.InvalidKeyException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import javax.crypto.BadPaddingException;

import javax.crypto.Cipher;

import javax.crypto.IllegalBlockSizeException;

import javax.crypto.KeyGenerator;

import javax.crypto.NoSuchPaddingException;

import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

public class DecriptTest {

    public static String TestSHA1(String decript) {

        try {

            MessageDigest digest = java.security.MessageDigest

                    .getInstance(“SHA-1”);

            digest.update(decript.getBytes());

            byte messageDigest[] = digest.digest();

            // Create Hex String

            StringBuffer hexString = new StringBuffer();

            // 字节数组转换为 十六进制 数

            for (int i = 0; i < messageDigest.length; i++) {

                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);

                if (shaHex.length() < 2) {

                    hexString.append(0);

                }

                hexString.append(shaHex);

            }

            return hexString.toString();

        } catch (NoSuchAlgorithmException e) {

            e.printStackTrace();

        }

        return “”;

    }

    public static String TestSHA(String decript) {

        try {

            MessageDigest digest = java.security.MessageDigest

                    .getInstance(“SHA”);

            digest.update(decript.getBytes());

            byte messageDigest[] = digest.digest();

            // Create Hex String

            StringBuffer hexString = new StringBuffer();

            // 字节数组转换为 十六进制 数

            for (int i = 0; i < messageDigest.length; i++) {

                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);

                if (shaHex.length() < 2) {

                    hexString.append(0);

                }

                hexString.append(shaHex);

            }

            return hexString.toString();

        } catch (NoSuchAlgorithmException e) {

            e.printStackTrace();

        }

        return “”;

    }

    public static String TestMD5(String input) {

        try {

            // 获得MD5摘要算法的 MessageDigest 对象

            MessageDigest mdInst = MessageDigest.getInstance(“MD5”);

            // 使用指定的字节更新摘要

            mdInst.update(input.getBytes());

            // 获得密文

            byte[] md = mdInst.digest();

            // 把密文转换成十六进制的字符串形式

            StringBuffer hexString = new StringBuffer();

            // 字节数组转换为 十六进制 数

            for (int i = 0; i < md.length; i++) {

                String shaHex = Integer.toHexString(md[i] & 0xFF);

                if (shaHex.length() < 2) {

                    hexString.append(0);

                }

                hexString.append(shaHex);

            }

            return hexString.toString();

        } catch (NoSuchAlgorithmException e) {

            e.printStackTrace();

        }

        return “”;

    }

    /**

     * 加密

     */

    public static byte[] TestEncryptAES(String content, String password) {

        try {

            KeyGenerator kgen = KeyGenerator.getInstance(“AES”);

            kgen.init(128, new SecureRandom(password.getBytes()));

            SecretKey secretKey = kgen.generateKey();

            byte[] enCodeFormat = secretKey.getEncoded();

            SecretKeySpec key = new SecretKeySpec(enCodeFormat, “AES”);

            Cipher cipher = Cipher.getInstance(“AES”);// 创建密码器

            byte[] byteContent = content.getBytes(“utf-8”);

            cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化

            byte[] result = cipher.doFinal(byteContent);

            return result; // 加密

        } catch (NoSuchAlgorithmException e) {

            e.printStackTrace();

        } catch (NoSuchPaddingException e) {

            e.printStackTrace();

        } catch (InvalidKeyException e) {

            e.printStackTrace();

        } catch (UnsupportedEncodingException e) {

            e.printStackTrace();

        } catch (IllegalBlockSizeException e) {

            e.printStackTrace();

        } catch (BadPaddingException e) {

            e.printStackTrace();

        }

        return null;

    }

    /**

     * 解密

     * @return

     */

    public static byte[] TestDecryptAES(byte[] content, String password) {

        try {

            KeyGenerator kgen = KeyGenerator.getInstance(“AES”);

            kgen.init(128, new SecureRandom(password.getBytes()));

            SecretKey secretKey = kgen.generateKey();

            byte[] enCodeFormat = secretKey.getEncoded();

            SecretKeySpec key = new SecretKeySpec(enCodeFormat, “AES”);

            Cipher cipher = Cipher.getInstance(“AES”);// 创建密码器

            cipher.init(Cipher.DECRYPT_MODE, key);// 初始化

            byte[] result = cipher.doFinal(content);

            return result; // 加密

        } catch (NoSuchAlgorithmException e) {

            e.printStackTrace();

        } catch (NoSuchPaddingException e) {

            e.printStackTrace();

        } catch (InvalidKeyException e) {

            e.printStackTrace();

        } catch (IllegalBlockSizeException e) {

            e.printStackTrace();

        } catch (BadPaddingException e) {

            e.printStackTrace();

        }

        return null;

    }

    // 加密  

  public static String TestGetBase64(String str) {  

      byte[] b = null;  

      String s = null;  

      try {  

          b = str.getBytes(“utf-8”);  

      } catch (UnsupportedEncodingException e) {  

          e.printStackTrace();  

      }  

      if (b != null) {  

          s = new BASE64Encoder().encode(b);  

      }  

      return s;  

  }  

 

    // 解密  

  public static String TestGetFromBase64(String s) {  

      byte[] b = null;  

      String result = null;  

      if (s != null) {  

          BASE64Decoder decoder = new BASE64Decoder();  

          try {  

              b = decoder.decodeBuffer(s);  

              result = new String(b, “utf-8”);  

          } catch (Exception e) {  

              e.printStackTrace();  

          }  

      }  

      return result;  

  }

}

java使用SHA1、SHA、MD5、AES、Base64加密算法总结详解编程语言

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/14724.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论