Hashdown

来自goozo
跳转至: 导航搜索

Hashdown是一个将数据转换到字符的在线编码工具。

地址: http://www.hashdown.net/edit.html

用途

  • 压缩文本,在有限字符内存储更多信息,如微博和twitter。
  • 防止检索,通过压缩和加盐的字符,已经无法直接阅读,搜索引擎或防火墙也无法进行检索。
  • 内容加密,编码时进行加密可以对内容进行针对性的保护


编码方式

编码算法 明文 编码结果
链接 Hashdown http://www.hashdown.net/#SGFzaERvd24
Base2e15 Hashdown 壺둾㴍켚㑰
蝌蚪码 Hashdown /゙ًٌَُُّّّّّْْْ۪ٜٓٓۤ

链接

链接方式通过base64编码在每字节里嵌入6比特数据后转换成网页链接。

链接模式方便传播和直接阅读内容,但如果通过短域名等服务发表Hashdown链接,等同于将内容存储在单一服务器上,安全性降低。

声明

作者不赞成用Hashdown链接传播任何违反中国大陆法律的内容,
这么做会导致hashdown.net域名被屏蔽,让任何人都无法使用。

为了防止这种情况发生,请下载离线版以保证重要数据不会因服务器下线而无法解码

Base2e15

Base2e15在每个unicode字符嵌入15比特数据,目的使用最少的字符数来存储内容。

https://github.com/rinick/base2e15

蝌蚪码

蝌蚪解码利用Unicode组合字符在每个字符嵌入4比特数据。但所有字符都重叠在相同的位置,不论嵌入数据量多少,字符总宽度不变。 由于压缩效率较低,更适合在没有字符限制的留言板论坛使用。


保护

当不加盐的情况下,数据不经过任何加密或压缩算法处理,直接进行编码

加盐

加盐的目的是使同样的输入数据不会永远产生相同的输出数据,1字节加盐的数据编码后会随机产生256种不同的编码结果,而4字节加盐的数据则会产生4294967296种不同的结果。

密码

使用密码加密后的编码数据在解码时必须输入相同的密码才能正确解密。另外在密码模式下自动进行1字节加盐,无法选择4字节加盐。


标记语言

Hashdown支持Github风格的标记语言来调整文本的格式。

离线版

Hashdown工具完全运行在客户端js

可以在GitHub下载最新版本离线运行(右下角 Download Zip)

API

使用javascript编解码Hashdown

   <script src="http://www.hashdown.net/api.js"></script>
   <script>
     // 基本编解码
     var encoded1 = $hashdown.encode('Hashdown is awesome');
     var decoded1 = $hashdown.decode(encoded1);

     // 更多的编解码选项
     var encoded2 = $hashdown.encode('Hashdown is awesome',{
     	"codec" : $hashdown.BASE2E15,
     	"markdown" : true,
     	"protect" :  $hashdown.PROTECT_PASSWORD,
     	"password" : "mypassword"
     });
     var decoded2 = $hashdown.decode(encoded2, 'mypassword').text;
   </script>