import java.util.Random;
public final class Des2
{
private static final int CONST_RANGE = 256;
private static final int CONST_255 = 255;
private Des2()
{
}
/**
* 加密算法实习方法
*
* @param sSource sSource
* @return String
* @see [类、类#方法、类#成员]
*/
public static String encryption(String sSource)
{
if (null == sSource || "".equals(sSource.trim()))
{
return sSource;
}
int nKeyPos = -1;
int nSrcPos = 0;
int nSrcAsc;
String sKey = "portalone";
int nOffset = new Random().nextInt(CONST_RANGE);
String sHexString = Integer.toHexString(nOffset);
for (int i = 2; i > sHexString.length();)
{
sHexString = "0" + sHexString;
}
StringBuffer sbDest = new StringBuffer(sHexString);
for (nSrcPos = 0; nSrcPos < sSource.length(); nSrcPos++)
{
nSrcAsc = (sSource.charAt(nSrcPos) + nOffset) % CONST_255;
if (nKeyPos < sKey.length() - 1)
{
nKeyPos++;
}
else
{
nKeyPos = 0;
}
nSrcAsc = nSrcAsc ^ (int)(sKey.charAt(nKeyPos));
sHexString = Integer.toHexString(nSrcAsc);
for (int i = 2; i > sHexString.length();)
{
sHexString = "0" + sHexString;
}
sbDest = sbDest.append(sHexString);
nOffset = nSrcAsc;
}
return new String(sbDest);
}