`
JasonShieh
  • 浏览: 521206 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对IP进行四位加密

    博客分类:
  • JAVA
 
阅读更多
由于某种需要,需要对0-255的IP进行四位转换,例如255转为类似“vc52”这样的四个字符的字符串。
public class Base36 {
	private final static int addition = 100000;
	private final static byte[] Base36 = {
			(byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4',
			(byte) '5', (byte) '6', (byte) '7', (byte) '8', (byte) '9',
			(byte) 'A', (byte) 'B',	(byte) 'C', (byte) 'D', (byte) 'E',
			(byte) 'F', (byte) 'G', (byte) 'H', (byte) 'I', (byte) 'J', 
			(byte) 'K', (byte) 'L',	(byte) 'M', (byte) 'N', (byte) 'O',
			(byte) 'P', (byte) 'Q',	(byte) 'R', (byte) 'S', (byte) 'T',
			(byte) 'U', (byte) 'V',	(byte) 'W', (byte) 'X', (byte) 'Y',
			(byte) 'Z'
	};
	private static int transform(int base){
		int level = addition;
		base += level;
		System.out.println(base);
		return base;
	}
	public static String encode(int dex){
		dex = transform(dex);
		StringBuilder code36 = new StringBuilder();
		int quotient = dex;
		int remainder = 0;
		char temp = '0';
		while((quotient / 36) > 0){
			remainder = quotient % 36;
			temp = (char) Base36[remainder];
			code36.append(temp);
			quotient = quotient / 36;
		}
		if((remainder = quotient % 36) > 0){
			code36.append((char) Base36[remainder]);
		}
		return code36.toString();
	}
	
	public static int decode(String code){
		int base = 0;
		int level = 0;
		for(int i = 0; i < code.length(); i++){
			level = getIndex((byte) code.charAt(i));
			if(i == 0){
				base += level;
			} else if(i == 1){
				base += level * 36;
			} else if(i == 2){
				base += level * 36*36;
			} else if(i == 3){
				base += level * 36*36*36;
			}
		}
		System.out.println(base);
		base %= addition;
		return base;
	}
	
	private static int getIndex(byte code){
		code = change2UpCase(code);
		int index = 0;
		for(int i = 0; i < Base36.length; i++){
			if(Base36[i] == code){
				index = i;
				break;
			}
		}
		return index;
	}
	
	private static byte change2UpCase(byte code){
		if(code >= 'a' && code <= 'z'){
			code = (byte) (code - 32);
		}
		return code;
	}
	
	public static void main(String[] args) {
//		String result = encode(255);
//		System.out.println(result);
		System.out.println(decode("vC52"));
	}
}
分享到:
评论

相关推荐

    TCP/IP技术大全

    10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 ...

    TCP/IP教程TCP/IP基础

    10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 ...

    TCP-IP技术大全

    10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 ...

    TCP/IP技术大全(中文PDF非扫描版)

    10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 ...

    TCP/IP详解

    10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 ...

    PGP实验报告.doc

    主要技术用户密钥的生成,用户公 " "钥的交换,对文件进行加密,利用PGP进行数字签名,利用PGP加密邮件等。通 " "过PGP软件的使用,使同学理解如何组合IDEA,AES,RSA,Diffie-Hellman等算" "法进行数据安全传输的...

    计算机网络常见问题解答

    问题4-18:路由表中只给出到目的网络的下一跳路由器的IP地址,然后在下一个路由器的路由表中再给出再下一跳的路由器的IP地址,最后才能到达目的网络进行直接交付。采用这样的方法有什么好处? 问题4-19:链路层广播...

    IIS6.0 IIS,互联网信息服务

    转到“目录安全性”窗口,单击“IP地址及域名限制”下的“编辑”按钮,点选中“授权访问”以能接受客户端从本机之外的地方对IIS进行管理;最后单击“确定”按钮。 3.则在任意计算机的浏览器中输入如...

    CISCO 技术大集合

    IP地址分为网络地址和主机地址二个部分,A类地址前8位为网络地址,后24位为主机地址,B类地址16位为网络地址,后16位为主机地址,C类地址前24位为网络地址,后8位为主机地址,网络地址范围如下表所示: 种类 网络...

    网络安全试题.doc

    黑客利用IP地址进行攻击的方法有:( ) A. IP欺骗 B. 解密 C. 窃取口令 D. 发送病毒 9. 防止用户被冒名所欺骗的方法是: ( ) A. 对信息源发方进行身份验证 B. 进行数据加密 C. 对访问网络的流量进行过滤和保护 D...

    网络安全与管理(第二版)-网络安全试题4.doc

    黑客利用IP地址进行攻击的方法有:( ) A. IP欺骗 B. 解密 C. 窃取口令 D. 发送病毒 9. 防止用户被冒名所欺骗的方法是: ( ) A. 对信息源发方进行身份验证 B. 进行数据加密 C. 对访问网络的流量进行过滤和保护 D...

    枫音影院2006仿帝王_sp2

    十一、封锁IP功能,对不友好的IP或IP段进行封锁。 十二、Helix Server服务器管理,可设定规定的时间内让影片自动更换路径,彻底杜绝盗链,方便查询与操作Helix Server的会员点播日志,使服务器资源有如铜墙铁壁,...

    网络安全作业.doc

    30.DES算法加密明文时,首先将明文64位分成左右两个部分,每部分为32位。 二、选择题 1.有一种称为嗅探器的软件,它是通过捕获网络上传送的数据包来收集敏感数据,这 些数据可能是用户的账号和密码,或者一些机密...

    网络信息扫描实验

    此外,也可以根据系统实现定义的系统安全漏洞库,对系统可能存在的、已知的安全漏洞逐项进行扫描和检查,按照规则匹配的原则将扫描结果与安全漏洞库进行对比,如果满足匹配条件,则视为漏洞存在。最后,根据检测结果...

    网络安全试卷四-含答案.doc

    " " 问题4 " "单项选择题(2.0分 难度:基本题) " " " " " " " "数字证书采用公钥体制,即利用一对互相匹配的密钥进行( ) " " " "加密 " " " "加密、解密 " " " "解密 " " " "安全认证 " " " "窗体底端 " " " "窗体...

    SM2/SM3/SM4国密算法

    SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中。 采用该算法已经研制了系列芯片、智能IC卡、智能...

Global site tag (gtag.js) - Google Analytics