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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值