Java Base64、AES、SHA1、MD5加密算法
来源:互联网 发布:软件开发合作协议 编辑:程序博客网 时间:2024/05/22 10:47
转http://www.open-open.com/lib/view/open1392185662160.html
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 StringStringBuffer 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 StringStringBuffer 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 "";}}
0 0
- Java Base64、AES、SHA1、MD5加密算法
- Java Base64、AES、SHA1、MD5加密算法
- Java Base64、AES、SHA1、MD5加密算法
- Java Base64、AES、SHA1、MD5加密算法
- Java Base64、AES、SHA1、MD5加密算法
- Java Base64、AES、SHA1、MD5加密算法
- Java Base64、AES、SHA1、MD5加密算法
- 加密算法 AES MD5 SHA1
- MD5 SHA1 BASE64加密算法
- MD5 SHA1 BASE64加密算法
- java 加密算法-des、md5、aes、base64、rsa
- AES,MD5,BASE64,Paillier加密算法
- JAVA自带的加密算法-MD5\SHA1\BASE64
- JAVA自带的加密算法-MD5\SHA1\BASE64
- SHA1 MD5 BASE64 AES 加密解密
- SHA1 MD5 BASE64 AES 加密解密
- 【前端】加密算法MD5、SHA1、Base64实测
- iOS加密算法(DES、AES、MD5、SHA512、Base64)
- 安卓学习笔记---如何保存数据到SharePreference里面,获取所有sp文件以及删除文件
- 杭电 3368 Recersi DFS 搜索
- VMware Workstation 中网卡的设置
- Mac搭建本地局域网SVN服务(Cornerstone)
- java一行一行写入或读取数据
- Java Base64、AES、SHA1、MD5加密算法
- Gear VR何以成为移动VR霸主?这些数据需要知道
- Spring 学习 (二)__BeanWrapper及其实现
- 最新Github上各DL框架Star数量大PK | 附各框架性能对比分析
- Android自定义控件实现无限轮播
- 机器学习实战笔记--kNN
- Mentor.Graphics.O-in v3.0 Linux 1DVD
- Java 序列化
- 海航陈峰成功组织海航集团2017迎新爱跑活动