//3des加密
public static String encrypt(byte[] keys, String s) throws Exception{
Cipher cipher=Cipher.getInstance("DESede/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, Algorithm));
byte[] ds= cipher.doFinal(s.getBytes("utf8"));
return BASE64Encoder.encode(ds);
}
//3des解密
public static String decrypt(String s) throws Exception{
Cipher cipher=Cipher.getInstance("DESede/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, Algorithm));
byte[] bts=base64Decoder.decodeBuffer(s);
byte[] bs = cipher.doFinal(bts);
return new String(bs,"ASCII");
}
//sha256加密
public static String SHA256_Hash(String str){
try {
byte[] bs=str.getBytes("utf8");
MessageDigest digest=MessageDigest.getInstance("SHA-256");
digest.update(bs);
byte[] digest2 = digest.digest();
return bytes2Hex(digest2);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//二进制16进制字符串
private static String bytes2Hex(byte[] bts) {
String des = "";
String tmp = null;
for (int i = 0; i < bts.length; i++) {
tmp = (Integer.toHexString(bts[i] & 0xFF));
if (tmp.length() == 1) {
des += "0";
}
des += tmp;
}
return des;
}