Android中使用DESMD5Utils对数据进行加密
来源:互联网 发布:mysql union 编辑:程序博客网 时间:2024/06/05 17:39
使用该工具类,该工具类直接粘贴复制就可以
package com.example.utils;import java.security.Key;import java.security.MessageDigest;import java.security.spec.AlgorithmParameterSpec;import java.util.UUID;import javax.crypto.Cipher;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.IvParameterSpec;/** * DES加密和解密 * MD5加密 * @author wangfei */public class DESMD5Utils { /** * MD5加密 * @param str * @param isUp * true是否大写 * @return */ public static String MD5(String str, boolean isUp) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); } catch (Exception e) { e.printStackTrace(); return ""; } char[] charArray = str.toCharArray(); byte[] byteArray = new byte[charArray.length]; for (int i = 0; i < charArray.length; i++) { byteArray[i] = (byte) charArray[i]; } byte[] md5Bytes = md5.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++) { int val = (md5Bytes[i]) & 0xff; if (val < 16) { hexValue.append("0"); } hexValue.append(Integer.toHexString(val)); } if (isUp) { return (hexValue.toString()).toUpperCase(); } else { return hexValue.toString(); } } public String ALGORITHM_DES = "DES/CBC/PKCS5Padding"; public String DESKEY = "QpOiUnYbVp3bB73Fsn7O12CX"; /** * 默认加密方式 * * @param data * @return */ public String encrypt(String data) { String str = encrypt(DESKEY, data); return str; } /** * 默认解密方式 * @param data * @return */ public String decrypt(String data) { String str = decrypt(DESKEY, data); return str; } /** * DES算法,加密 * * @param data * 待加密字符串 * @param key * 加密私钥,长度不能够小于8位 * @return 加密后的字节数组,一般结合Base64编码使用 * @throws InvalidAlgorithmParameterException * @throws Exception */ public String encrypt(String key, String data) { if (data == null) return null; try { DESKeySpec dks = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); // key的长度不能够小于8位字节 Key secretKey = keyFactory.generateSecret(dks); Cipher cipher = Cipher.getInstance(ALGORITHM_DES); IvParameterSpec iv = new IvParameterSpec("12345678".getBytes()); AlgorithmParameterSpec paramSpec = iv; cipher.init(Cipher.ENCRYPT_MODE, secretKey, paramSpec); byte[] bytes = cipher.doFinal(data.getBytes()); return byte2hex(bytes); } catch (Exception e) { e.printStackTrace(); return data; } } /** * DES算法,解密 * * @param data * 待解密字符串 * @param key * 解密私钥,长度不能够小于8位 * @return 解密后的字节数组 * @throws Exception * 异常 */ public String decrypt(String key, String data) { if (data == null) return null; try { DESKeySpec dks = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); // key的长度不能够小于8位字节 Key secretKey = keyFactory.generateSecret(dks); Cipher cipher = Cipher.getInstance(ALGORITHM_DES); IvParameterSpec iv = new IvParameterSpec("12345678".getBytes()); AlgorithmParameterSpec paramSpec = iv; cipher.init(Cipher.DECRYPT_MODE, secretKey, paramSpec); return new String(cipher.doFinal(hex2byte(data.getBytes()))); } catch (Exception e) { e.printStackTrace(); return data; } } /** * 二行制转字符串 * * @param b * @return */ private static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder(); String stmp; for (int n = 0; b != null && n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) hs.append('0'); hs.append(stmp); } return hs.toString().toUpperCase(); } private static byte[] hex2byte(byte[] b) { if ((b.length % 2) != 0) throw new IllegalArgumentException(); byte[] b2 = new byte[b.length / 2]; for (int n = 0; n < b.length; n += 2) { String item = new String(b, n, 2); b2[n / 2] = (byte) Integer.parseInt(item, 16); } return b2; }}
、、、、、、、、、、、、、、、使用该该工具类加密,直接调用、、、、、、、、、、、、、、
我在这里直接举个简单的例子,相信大家都能够看懂
DESMD5Utils dUtils=new DESMD5Utils();
String name=”武小鹏”;
String d_name= dUtils.encrypt(name);//将name加密
那么d_name就是加密后的文件
1 0
- Android中使用DESMD5Utils对数据进行加密
- Android使用KeyStore对数据进行加密
- .Net中使用散列算法对数据进行加密
- .Net中使用散列算法对数据进行加密
- Java中使用SSHA对数据进行加密的示例
- iOS中使用RSA对数据进行加密解密
- iOS中使用RSA对数据进行加密解密
- iOS中使用RSA对数据进行加密解密
- Java中使用AES对数据进行加密
- iOS中使用RSA对数据进行加密解密
- iOS中使用RSA对数据进行加密解密
- iOS开发中使用AES算法对数据进行加密
- Android中使用MD5对密码进行加密
- java中对数据进行MD5加密
- 使用md5对数据进行加密
- 对数据进行加密
- 【数据加密】使用XXTEA对NSData进行加密
- 【Android数据加密与完整性校验之RSA加密算法】Android应用开发中如何使用RSA加密算法对数据进行校验
- codeblocks快捷键
- Oracle 数据库12c 16大新特性总结
- codeforces 676C Vasya and String (尺取法)
- 进程中的“段”
- 线程绑定CPU核
- Android中使用DESMD5Utils对数据进行加密
- 面试经验
- 联想功能字符串的提取(c)
- run time error 与compile time error区别
- 如何将jpg,bmp等普通图片转成层次分明的二值图片(非仅用阈值分割)
- Android TabLayout分析
- Java基础回顾 : Runtime类和System类
- ios时间戳和当前时间转换
- EJB