* @param arrB要轉換的字節數組
* @返回轉換後的字符串。
* @throws Exception該方法不處理任何異常,所有異常都被拋出。
*/
公共靜態字符串byteArr2HexStr(byte[] arrB)引發異常{
int iLen = arrB.length
//每個字節可以用兩個字符表示,所以字符串的長度是數組長度的兩倍。
string buffer sb = new string buffer(iLen * 2);
for(int I = 0;我& ltiLeni++) {
int int tmp = arrB[I];
//將負數轉換成正數
while(int tmp & lt;0) {
int tmp = int tmp+256;
}
//小於0F的數字前面需要有0。
if(int tmp & lt;16) {
sb . append(" 0 ");
}
sb . append(integer . tostring(int tmp,16));
}
return sb . tostring();
}
/*
* @ paramstring字符串要轉換的字符串
* @返回轉換後的字節數組
* @throws Exception該方法不處理任何異常,所有異常都被拋出。
*/
公共靜態字節[] hexStr2ByteArr(String strIn)引發異常{
byte[]arrB = strin . getbytes();
int iLen = arrB.length
//兩個字符代表壹個字節,所以字節數組的長度是字符串的長度除以2。
byte[] arrOut =新字節[iLen/2];
for(int I = 0;我& ltiLeni = i + 2) {
String strTmp = new String(arrB,I,2);
arrOut[I/2]=(byte)integer . parse int(strTmp,16);
}
返回arrOut
}
/**
*加密字節數組
*
* @param arrB
*要加密的字節數組
* @返回加密的字節數組
* @拋出異常
*/
@SuppressWarnings("restriction ")
私有靜態byte[] encrypt(byte[] arrB,String keyParameter)引發異常{
security . add provider(new com . sun . crypto . provider . sun JCE());
key key = getKey(key parameter . getbytes());
cipher encrypt cipher = cipher . getinstance(" DES ");
encryptCipher.init(密碼。ENCRYPT_MODE,key);
返回encrypt cipher . do final(arrB);
}
/**
*加密字符串
*
* @param strIn
*要加密的字符串
* @返回加密字符串
* @拋出異常
*/
公共靜態字符串加密(String strIn,String keyParameter)引發異常{
返回hextrbytearrutils . bytearr hex str(encrypt(strin . getbytes(PICC config。PICC _輸入_字符集),關鍵參數));
}
/**
*解密字節數組
*
* @param arrB
*要解密的字節數組
* @返回解密的字節數組
* @拋出異常
*/
@SuppressWarnings("restriction ")
私有靜態byte[] decrypt(byte[] arrB,String keyParameter)引發異常{
security . add provider(new com . sun . crypto . provider . sun JCE());
key key = getKey(key parameter . getbytes());
cipher decrypt cipher = cipher . getinstance(" DES ");
decryptCipher.init(Cipher。DECRYPT_MODE,key);
返回decrypt cipher . do final(arrB);
}
/**
*解密字符串
*
* @param strIn
*要解密的字符串
* @返回解密的字符串
* @拋出異常
*/
公共靜態字符串解密(String strIn,String keyParameter)引發異常{
返回新字符串(decrypt(hexstrbytearrutils . hexstr 2 bytearr(strIn),keyParameter),PiccConfig。PICC _輸入_字符集);
}