URL字符串加密

原创 2011年01月07日 11:21:00

import java.io.ByteArrayOutputStream;
import java.io.IOException;
/**
 * 对URL进行加密类
 *
 * @author <a href="mailto:jiangtao@ultrapower.com.cn">jiangtao</a>
 *
 * @version $Revision$
 */
public class URLEncoder {
 private static char[] tab = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

 /**
  * 加密方式
  * @param s 要加密的串
  * @return 加密后的串
  */
 public static String encode(String s) {
        try {
            if (s == null || s.equals("")) return "";
            StringBuilder tmpStr = new StringBuilder();
            byte tmpByte[] = s.getBytes();
            for (byte aTmpByte : tmpByte)
                tmpStr.append("").append(tab[0x0f & (aTmpByte >> 4)]).append(tab[0x0F & aTmpByte]);
            return tmpStr.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return s;
        }
    }
 
 /**
  * 解密方法
  * @param s 要加密的串
  * @return 解密后的串
  */
 public static String decode(String s) {
        try {
            if (s == null || s.equals("")) return "";
            ByteArrayOutputStream bytess = new ByteArrayOutputStream();
            byte tmpByte[] = s.toUpperCase().getBytes();
            for (int i = 0; i < tmpByte.length / 2; i++) {
                tmpByte[i * 2] = pocb(tmpByte[i * 2]);
                tmpByte[i * 2 + 1] = pocb(tmpByte[i * 2 + 1]);
                bytess.write((tmpByte[i * 2] << 4) | (tmpByte[i * 2 + 1]));
            }
            bytess.flush();
            return new String(bytess.toByteArray());
        } catch (Exception e) {
            return s;
        }
    }

    private static byte pocb(byte b) {
        if (b > 57) {
            b -= 55;
        } else {
            b -= 48;
        }
        return b;
    }

    public static String encodeBase64(String str) {
        byte[] b = str.getBytes();
        return new sun.misc.BASE64Encoder().encode(b);
    }


    public static String decodeBase64(String fileContent) throws IOException {
        byte[] b = new sun.misc.BASE64Decoder().decodeBuffer(fileContent);
        return new String(b);
    }

 /**
  * @param args
  */
 public static void main(String[] args) {
        String url = "url=XX中文//、中文测试ttt../test/bop.jsp?menuid=2020100007&menu=中国&amp;";
        System.out.println("encode :" + URLEncoder.encode(url));
     System.out.println("decode :" + URLEncoder.decode("687474703A2F2F7777772E626F6D632E636F6D3A383038312F7569702F6F7065726174696F6E2F626F70506F7065646F6D21626F70547265652E706F7274616C"));
 }

}

zzuli OJ 1077: 字符串加密

Description 输入一串字符(长度不超过100)和一个正整数k,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母c加一个序数k,即用它后面的第k个字母代替,...
  • sinat_25926481
  • sinat_25926481
  • 2015年08月29日 12:28
  • 5386

[华为OJ] 字符串加密

思路: 这道题目最难的地方在题意的理解,尤其是密匙是如何生成的,将拗口的密匙生成过程说明如下,分为两个步骤: 1.对密匙进行去重; 2.对密匙根据字母表剩余字母进行补齐,保证最后的密匙一定是26...
  • u014730658
  • u014730658
  • 2016年07月09日 23:36
  • 241

字符串的加密与解密

一、JavaScript预定义编码与解码方法 字符串常规编码与解码——escape()和unescape()       var str = 'HTML5 Free自由者...
  • huangyibin628
  • huangyibin628
  • 2014年05月01日 23:44
  • 1679

字符串加密问题

字符串加密问题 题目描述:任意给定一个正整数(不超过32位),依据如下规则对其进行加密处理: 1. 不小于60000的整数的密文为其本身 2. 对于小于60000的整数,密文生成方式如下:...
  • yfy236
  • yfy236
  • 2016年09月01日 21:20
  • 343

Python中的如何给一个字符串加密

Python中自带的hashlib模块的功能是给字符串进行加密,加密方式有以下几种: md5、sha1、sh224、sha256、sha384、sha512 常用的是md5和sha1 这里首先介...
  • Beyond_F4
  • Beyond_F4
  • 2017年11月14日 21:01
  • 331

C#字符串加密

首先来看一下我们试卷上的题目。 1)从A.txt文本文件中按照行读字符串,进行加密。吧加密后的字符串写到B.txt文件中。...
  • u012706792
  • u012706792
  • 2015年12月14日 19:43
  • 6780

Android实现DES对字符串加密

import java.io.UnsupportedEncodingException;    import java.security.SecureRandom;    import j...
  • jiankeufo
  • jiankeufo
  • 2015年02月10日 17:59
  • 931

app.config数据库连接字符串的加密

一直都想对app.config下的数据库连接字符串进行加密,因为程序直接调用数据集的时候必需要调用app.config(程序编译后会自动更名为程序文件名.config),如果数据库连接字符串以明文方式...
  • lv111zy
  • lv111zy
  • 2014年07月02日 15:04
  • 933

数据库连接字符串加密

在项目开发中,将自己的系统提高自己系统的安全性能!
  • happyniceyq
  • happyniceyq
  • 2016年08月21日 22:12
  • 1099

怎样对字符串进行加密/解密

作者:John_Sheridan [译者的话] 该文介绍了一种直接调用 CryptoAPI 函数对字符串进行加密和解密的用法,非常简单、实用。其中,有作者所封装的一个加密/解密类,是可以直接复用的源码...
  • no_frost
  • no_frost
  • 2005年03月06日 13:02
  • 2211
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:URL字符串加密
举报原因:
原因补充:

(最多只允许输入30个字)