学习了MD5加密类记录一下,加密方式是固定的,这个是最简单没做任何处理的,而且MD5加密不可破解(可能网上有破解)
public static String encode(String string) {
byte[] hash = new byte[0];
try {
hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StringBuilder hex = new StringBuilder(hash.length * 2);
for (byte b : hash) {
if ((b & 0xFF) < 0x10) {
hex.append("0");
}
hex.append(Integer.toHexString(b & 0xFF));
}
return hex.toString();
}
学习了DES加密解密记录一下 按照https://blog.csdn.net/gongzhiyao3739124/article/details/52809821 这个大神写的
密钥长度不能少于八位,少了会报错
public class DES {
//内容随便填 长度要八个
private static byte[] iv={1,3,4,5,2,9,0,1};
/**
*
* @param encryptString 明文
* @param encryptKey 密匙 传入的密匙大于8位
* @return 加密后的密文
*/
public static String EncryptDES(String encryptString,String encryptKey){
//实例化IvParameterSpec对象,使用指定的初始化向量
IvParameterSpec zeroIv= new IvParameterSpec(iv);
//实例化SecretKeySpec,根据传入的密钥获取字节数组来构造SecretKeySpec
SecretKeySpec key=new SecretKeySpec(encryptKey.getBytes(),"DES");
try {
//创建密码器
Cipher cipher= Cipher.getInstance("DES/CBC/PKCS5Padding");
//使用密钥初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE,key,zeroIv);
//执行加密操作
byte[] encryptedData=cipher.doFinal(encryptString.getBytes());
return Base64.encodeToString(encryptedData,0);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
}
return null;
}
/**
*
* @param decryptString 密文
* @param decryptKey 密钥 传入的密匙大于8位
* @return 返回明文
*/
public static String decryptDES(String decryptString,String decryptKey){
//先试用Base64解密
byte[] bytes=Base64.decode(decryptString,0);
//实例化IvParameterSpec对象使用制度的初始化向量
IvParameterSpec zeroIv=new IvParameterSpec(iv);
//实例化SecretKeySpec,根据传入的密钥获得字节数组来构造SecretKeySpec
SecretKeySpec key=new SecretKeySpec(decryptKey.getBytes(),"DES");
try {
//创建密码器
Cipher cipher=Cipher.getInstance("DES/CBC/PKCS5Padding");
//用密钥初始化Cipher对象,上面是加密,这是解密
cipher.init(Cipher.DECRYPT_MODE,key,zeroIv);
//获取解密后的数据
byte[] decryptedData=cipher.doFinal(bytes);
return new String(decryptedData);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
}
return null;
}
}