简易加密算法,用于字符串加密

来源:互联网 发布:织梦dedecms json api 编辑:程序博客网 时间:2024/05/16 12:01

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

原创粉丝点击