* DES方法 0为加密,1为解密
*
* @param deskey
* 密钥
* @param str
* 待加密字符串
* @param type
* 0为加密,1为解密
* @return DES Str
*/
public static String getDES(String str, int type) {
Cipher encryptCipher = null;
Cipher decryptCipher = null;
Security.addProvider(new com.sun.crypto.provider.SunJCE());
try {
if (isEmpty(CommonConstant.DES_KEY_DEFAULT)) {
return null;
}
Key key = getKey(CommonConstant.DES_KEY_DEFAULT.getBytes("UTF-8"));
encryptCipher = Cipher.getInstance("DES");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);
decryptCipher = Cipher.getInstance("DES");
decryptCipher.init(Cipher.DECRYPT_MODE, key);
// if (type == 0) { // 0为加密
// return byteArr2HexStr(encryptCipher.doFinal(str.getBytes("UTF-8")));
// } else {
// return new String(decryptCipher.doFinal(hexStr2ByteArr(str)));
// }
if (type == 0) { // 0为加密
return byteArr2HexStr(encryptCipher.doFinal(str.getBytes("UTF-8")));
} else {
return new String(decryptCipher.doFinal(hexStr2ByteArr(str)),"UTF-8");
}
} catch (Exception e) {
return null;
}
}
/**
*
*
* @param cardNo
* @param prefix
* @param suffix
* @param num 非0值为固定*为num长度,0值为动态
* @str为替换符号
* @return
*/
public static String getSecurityNum(String cardNo, int prefix, int suffix, int num,String str) {
StringBuffer cardNoBuffer = new StringBuffer();
int len = prefix + suffix;
if (StringUtils.isNotBlank(cardNo) && cardNo.length() > len) {
cardNoBuffer.append(cardNo.substring(0, prefix));
if(num == 0){
for (int i = 0; i < cardNo.length() - len; i++) {
cardNoBuffer.append(str);
}
}else{
for (int i = 0; i < num; i++) {
cardNoBuffer.append(str);
}
}
cardNoBuffer.append(cardNo.substring(cardNo.length() - suffix,
cardNo.length()));
}
return cardNoBuffer.toString();
}