- 浏览: 279320 次
- 性别:
- 来自: 东方水城
文章分类
最新评论
-
18335864773:
pageoffice 插件 可以实现 office文档的在线操 ...
Java调用com组件操作word -
coosummer:
推荐使用在线免费bug管理系统- bug 禅思:http:// ...
Bug管理工具 -
program_coco:
柠檬bug管理系统,一个在线的bug管理系统。www.lemo ...
Bug管理工具 -
影非弦:
这个in.read(data);//data是一个byte[] ...
Java串口通信总结 -
影非弦:
这个不详细啊,我弄了一天了,都没弄出来,总是出错,读信息的时候 ...
Java串口通信总结
今天我有个朋友问我关于url加密的问题,这个问题之前就研究过,通俗的说法url加密就是按照一种编码规则把url中的某些字符串替换成其他的不规则的字符串。
后来我就上网找url加密相关的资料,结果发现2篇帖子,在此贴出来跟大家共享:
例子1:http://www.iteye.com/topic/286240 作者:gembler
例子2:http://www.iteye.com/topic/286810 作者:gembler
--------------------------------------------------------------------------例子1 分割线--------------------------------------------------------------------------
在淘宝网上用关键字“gembler”搜索一下商品,得出以下URL:
- http://search1.taobao.com/browse/0/n-0-----------------g,m5sw2ytmmvza----------------40--commend-0-all-0.htm?at_topsearch=1
(留意上面这里:“m5sw2ytmmvza”)
经过一轮 天昏地暗、沙尘滚滚 的分析、研究之后,得出以下结论:
在Base64中,码表是由 [A-Z,a-z,0-9,+,/,=(pad)] 组成的。
然后自己也弄个码表,由 [a-z,2-7(这个2-7是在淘宝网上搜索了n次而得出的结论)] 组成的:
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
-------------------------------------------------------愚蠢分割线---------------------------------------------
s | t | u | v | w | x | y | z | 2 | 3 | 4 | 5 | 6 | 7 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
在Base64中,是将二进制连成一串,然后再按6位来分割,分割完后在前面补0,这个地球人都知道,不多说了。
而我呢,哈哈,捣蛋一下,按5位来分割,如果刚好够分,那就爽了,
但是,世事往往不如人意,位数不够,那咋办呢?看下面 :)
在Base64中,是用"="来解决的吧。
现在呢,就是在前面补0,然后在后面再补0,其实就是前后补0,
但是,按5位来分割,前面3个0是补定的了,后面的0就看上帝怎么安排了。
举个小例子:字符串 "aaa",(编码/加密)后是 "mfqwc"
二进制: | 01100001 | 01100001 | 01100001 | ||
转换后: | (000)01100 | (000)00101 | (000)10000 | (000)10110 | (000)0001(0) |
十进制: | 12 | 5 | 16 | 22 | 2 |
码表对应: | m | f | q | w | c |
反过来,(解码/解密):
码表对应: | m | f | q | w | c |
十进制: | 12 | 5 | 16 | 22 | 2 |
二进制: | 00001100 | 00000101 | 00010000 | 00010110 | 00000010 |
去掉前3个0后: | 01100 | 00101 | 10000 | 10110 | 00010 |
合并后: | 0110000101100001011000010 |
然后把合并后的串的长度除一下8,发现多了个0:
合并后的二进制码: | 01100001 | 01100001 | 01100001 | 0 |
多了就算了,不要了(其实是在{编码/加密}的分割时候,在分剩的余数的后面补的0)。
然后再将 byte[] 转回字符串
OK!又见回"aaa"了。 :)
*有一点值得注意的是:UTF-8、GBK、GB18030 一般都没什么问题,但是 GB2312 可能字符集不够丰富,繁体字在decode的时候成问号了。
搞了半天,“可视化编辑器”的 Java Code不好使,骨干代码在回帖里贴出................(完整的代码,有兴趣的同志们请见附件!)
-------------------------------------------------------------------例子2 分割线------------------------------------------------------------------------------
继“淘宝网的搜索关键字的编码与解码”之后,忽然间,脑袋一闪:“好像拍拍网对于搜索关键字的编码与解码的规则都是差不多的”。 (看上面的:p7vz42wppy3a) 既然长得像,那么游戏规则应该也是大同小异。。。 分析、研究,有结论了: oh! gee ··· 就多了 [1 , 8 , 9 ] ,然后干掉了 [ d-f ]。
然后马上跑去拍拍网,敲入:“gembler”,得出如下URL:
是不是与淘宝网的长的差不多阿?答案是:“确实长的很像”。
其实,就只有码表不一样,其他的,全都跟“淘宝网的搜索关键字的编码与解码”一样,OK!我们来看看码表的变化。
在上文中用的码表是由: [a-z , 2-7] 组成的。
而现在,是由: [a-c , g-z , 1-9] 组成的。
上文的码表:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-------------------------------愚蠢分割线---------------------------------
s | t | u | v | w | x | y | z | 2 | 3 | 4 | 5 | 6 | 7 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
现在的码表:
a |
b |
c |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
-------------------------------愚蠢分割线---------------------------------
v |
w |
x |
y |
z |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
OK!测试一下,这里使用上文提供的 Source Code 中的 main(String[] args) 来测试:
测试结果:
输入:JavaEye论坛频道
输出:
original: JavaEye论坛频道
encode: mmt1p2nisiv6iz8pzsgooqra
decode: JavaEye论坛频道
然后跑去拍拍网敲入"JavaEye论坛频道"搜索。
得出:
http://sse.paipai.com/s-mmt1p2nisiv6iz8pzsgooqra--1-40-13---3-4-3----2-2--128-0.html
比较一下:
mmt1p2nisiv6iz8pzsgooqra - console输出
mmt1p2nisiv6iz8pzsgooqra - 拍拍网URL
说明两点:
1.其实这种规则只是在Base64上进行改造,不是原始的Base64。
2.可能这两个贴子出了以后,淘宝网和拍拍网的那个规则可能会有所变动,
所以以后拿着我上文提供的Source Code去执行的结果,跟他们俩比较,不一定会准确。
- code.zip (4.1 KB)
- 下载次数: 285
评论
一直在关注你的URL 加密, 呵呵, 很不错.
我不太熟悉java , 我要写为python的, 应该怎么写,
python研究不多,我想原理上是一样的.
一直在关注你的URL 加密, 呵呵, 很不错.
我不太熟悉java , 我要写为python的, 应该怎么写,
发表评论
-
MyEclipse 6.0.1 注册码【注册机】
2013-02-05 10:44 8MyEclipse 6.0 注册机 一、从附件中下载文件 ... -
【转】Flash图表AnyChart应用教程九:创建图表模板
2012-12-14 09:34 1257创建 AnyChart 模板的思路是分离图表设置和数据部分,然 ... -
【转】Flash图表AnyChart应用教程八:创建向下钻取仪表盘
2012-12-14 09:34 1253用 AnyChart 创建向下钻取地图有两种方式:用AnyCh ... -
【转】Flash图表AnyChart应用教程七:自定义轴标签
2012-12-14 09:33 1356AnyChart 图表中的X,Y和任意轴可以自定义标签。本文就 ... -
【转】Flash图表AnyChart应用教程六:创建圆形仪表
2012-12-14 09:33 2109本教程将为你详细解析 ... -
【转】Flash图表AnyChart应用教程五:字体设置
2012-12-13 10:11 1563要设置AnyChart 图表上的字体,可以对AnyChart的 ... -
【转】Flash图表AnyChart应用教程四:如何改变轴标签属性
2012-12-13 10:08 1479有人问到如何自定义AnyChart 图表的轴标签属性,实际上, ... -
【转】Flash图表AnyChart应用教程三:在网页中嵌入flash地图
2012-12-13 10:06 1871AnyChart 是一款灵活的基于Flash/JavaScri ... -
【转】Flash图表AnyChart应用教程二:修改XML设置转换图表类型
2012-12-13 10:02 1139我们都知道,运用flash图表控件 AnyChart 可以创建 ... -
【转】Flash图表AnyChart应用教程一:创建交互式数字仪表盘
2012-12-13 09:51 1685仪表盘是商业智能领域必不可少的一个工具,然而大多数企业仪表盘目 ... -
Java调用com组件操作word
2010-03-30 20:40 5136一、准备工作 先了解一下概念,JACOB 就是 JAVA ... -
JAVA类包搜索引擎
2009-08-12 15:14 1985由于项目开发过程中遇到缺少某个class文件对 ... -
Java串口通信总结
2009-07-31 11:03 6143最近在研 ... -
java异常集说明
2009-03-09 16:39 1574算术异常类:ArithmeticExe ... -
Java异常框架中finally执行、及其他相关问题
2009-03-04 08:29 3020首先看一下异常处理的完整语法,如下: try{ ... -
一个有趣的问题
2009-02-23 09:24 832今天早上过来就看到有人提了这么一个有趣的问题: 有 ... -
开源网站内容管理系统——OpenCms
2009-01-07 15:51 3931之前给客户做 ... -
Java Clone详述
2008-12-17 14:13 1140经常听到有人说java中没 ... -
MessageDigest对密码进行加密
2008-12-17 14:02 2409通常情况下我们必须把用户密码存放到数据库,为了安全起见,我们需 ... -
用Java实现几种常见的排序算法
2008-12-16 14:21 1269用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序 ...
相关推荐
一、为什么要进行URL加密? 1. 隐私保护:URL中可能包含敏感信息,如查询参数,如果不加密,这些信息可能会被中间人截取,造成隐私泄露。 2. 防止篡改:加密的URL更难被恶意修改,可以避免用户误操作或攻击者篡改...
Java中的URL加密处理是网络安全传输数据的一个重要环节,它可以防止敏感信息在传输过程中被窃取或篡改。本文将深入探讨如何使用Java实现URL加密,特别是基于Base64编码和编码转换的方式。我们将重点关注以下几个方面...
网站url加密解密asp.net .net url加密网站url加密解密asp.net .net url加密网站url加密解密asp.net .net url加密网站url加密解密asp.net .net url加密网站url加密解密asp.net .net url加密
在IT行业中,HTTP(超文本...总的来说,URL加密和解密是网络安全的重要组成部分,尤其在涉及用户隐私和敏感数据传输时。在C#中,通过利用.NET框架提供的加密类库,我们可以轻松地实现这一功能,从而确保数据的安全性。
在IT领域,尤其是在Web开发中,URL加密是一个重要的安全措施,它可以保护传输的数据不被中间人攻击或未经授权的用户窃取。在C#编程中,我们可以使用内置的类库来实现URL的加密和解密。这里,我们主要讨论的是使用DES...
在.NET开发中,URL加密和解密是网络通信中常见的安全措施,主要用于保护传输的数据,尤其是涉及用户敏感信息时。本文将深入探讨.NET环境下URL参数的加密与解密方法。 一、URL加密的重要性 URL(统一资源定位符)是...
综上所述,虽然本段代码展示了如何在PHP中实现基本的URL加密和解密,但对于构建高度安全的网络应用来说,这仅仅是一个起点。开发者应深入了解加密原理,选择合适的安全策略和技术,以应对日益复杂的网络安全挑战。
js对文字进行编码及相应的解码函数 传递参数时 进行url跳转时
接下来,URL加密则是在URL中使用加密技术,比如哈希或AES,将URL参数进行加密处理,确保即使URL被截取,也无法直接理解其内容。加密后的URL可能包含一串看似随机的字符,这些字符只有在服务器端解密后才能还原成有...
在互联网上,URL(统一资源定位符)是用于标识网页和其他资源的独特地址。为了确保URL在传输过程中的正确性和安全性,URL编码是一个重要的步骤。URL编码是一种标准的机制,它将URL中的特殊字符转换为百分号(%)加上...
URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;
在URL加密中,考虑到URL长度限制和可编码性,通常会使用哈希函数(如MD5或SHA-256)配合Base64编码来简化长字符串,并确保加密后的结果可以安全地放入URL。哈希函数可以将任意长度的输入转化为固定长度的摘要,而...
《迅雷快车旋风URL加密解密工具1.0:深入解析下载链接转换技术》 在互联网资源的分享过程中,下载链接起着至关重要的作用。然而,为了防止非法盗链和保护版权,许多下载平台如迅雷、快车、旋风等会对原始的HTTP或...
组件名为ZiqiApp.Web.CommonUtility2.dll。 功能描述: 1、动态页面傻瓜式静态化(一行代码搞定...2、URL加密并解密,防止SQL注入。 3、页面上弹出信息并跳转,包括在框架内跳转。 4、页面执行精确时间统计。 附例子。
任意url加密解密软件,内部专用