Java Base64、AES、SHA1、MD5加密算法 您所在的位置:网站首页 hex加密解密在线 Java Base64、AES、SHA1、MD5加密算法

Java Base64、AES、SHA1、MD5加密算法

2023-05-01 18:44| 来源: 网络整理| 查看: 265

Java Base64、AES、SHA1、MD5加密算法 原创

mb644789379f291 2023-04-25 17:44:34 博主文章分类:architecture ©著作权

文章标签 java 十六进制 i++ 文章分类 HarmonyOS 后端开发

©著作权归作者所有:来自51CTO博客作者mb644789379f291的原创作品,请联系作者获取转载授权,否则将追究法律责任 package com.example.decript; 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 SHA1(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 SHA(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 MD5(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 "" ; } /** * 加密 * * @param content * 需要加密的内容 * @param password * 加密密码 * @return */ public static byte [] encryptAES(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 ; } /** * 解密 * * @param content * 待解密内容 * @param password * 解密密钥 * @return */ public static byte [] decryptAES( 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 ; } /** * BASE64解密 * * @param key * @return * @throws Exception */ public static String decryptBASE64(String key) { return "" ; } /** * BASE64加密 * * @param key * @return * @throws Exception */ public static String encryptBASE64(String key) { return "" ; } } 收藏 评论 分享 举报

上一篇:Jedis分片连接池(分布式)

下一篇:hessian-添加安全机制



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有