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); }