1、String SHAEncode(String message) String resultString = null; try MessageDigest md = MessageDigest.getInstance(SHA); md.update(message.getBytes(); resultString = bytes2HexString(md.digest(); catch (Exception e) e.printStackTrace(); return resultString; / 将Bytes数据转换成16进制字符串格式将Bytes数据转换成16进制字符串格式String
2、 bytes2HexString(byte bts) String des = ; String tmp = null; for (int i = 0; i bts.length; i+) tmp = (Integer.toHexString(btsi & 0xFF); if (tmp.length() = 1) des += 0 des += tmp; return des;AES对称加密解密类public class Aes / /* 算法/模式/填充 */ private static final String CipherMode = AES/ECB/PKCS5Padding /* 创
3、建密钥 */ private static SecretKeySpec createKey(String password) byte data = null; if (password = null) password = StringBuffer sb = new StringBuffer(32); sb.append(password); while (sb.length() sb.setLength(32); data = sb.toString().getBytes(UTF-8 catch (UnsupportedEncodingException e) return new Sec
4、retKeySpec(data, AES加密字节数据 byte encrypt(byte content, String password) public static byte encrypt(byte content, String password) SecretKeySpec key = createKey(password); System.out.println(key); Cipher cipher = Cipher.getInstance(CipherMode); cipher.init(Cipher.ENCRYPT_MODE, key); byte result = ciph
5、er.doFinal(content); return result; return null;加密(结果为16进制字符串) String encrypt(String content, String password) /* 加密(结果为16进制字符串) */ public static String encrypt(String content, String password) data = content.getBytes( data = encrypt(data, password); String result = byte2hex(data); return result;解密字
6、节数组 byte decrypt(byte content, String password) / /* 解密字节数组 */ public static byte decrypt(byte content, String password) cipher.init(Cipher.DECRYPT_MODE, key);解密16进制的字符串为字符串 String decrypt(String content, String password) /* 解密16进制的字符串为字符串 */ public static String decrypt(String content, String passw
7、ord) data = hex2byte(content); data = decrypt(data, password); if (data = null) return null; String result = null; result = new String(data, 字节数组转成16进制字符串 String byte2hex(byte b) / /* 字节数组转成16进制字符串 */ public static String byte2hex(byte b) / 一个字节的数, StringBuffer sb = new StringBuffer(b.length * 2); S
8、tring tmp = for (int n = 0; n b.length; n+) / 整数转成十六进制表示 tmp = (java.lang.Integer.toHexString(bn & 0XFF); sb.append( sb.append(tmp); return sb.toString().toUpperCase(); / 转成大写 / /* 将hex字符串转换成字节数组 */ private static byte hex2byte(String inputString) if (inputString = null | inputString.length() 2) ret
9、urn new byte0; inputString = inputString.toLowerCase(); int l = inputString.length() / 2; byte result = new bytel; l; +i) String tmp = inputString.substring(2 * i, 2 * i + 2); resulti = (byte) (Integer.parseInt(tmp, 16) & 0xFF);Des 加密package com.itheima.androidutils.utils.encrypt.des;import java.io.
10、IOException;import java.security.SecureRandom;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import Decoder.BASE64Decoder;import Decoder.BASE64Encoder;public class Des private final static String DES = DES public static void main(String args) throws Exception String data = 强大的黑马51期 String key = wang!#$% System.err.println(encrypt(data, key);/ System.err.println(decrypt(encrypt(data, key), key);根据键值进行加密 String encrypt(String data, String key) /* * Description 根据键
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1