base64、urlencode、hash本是风马牛不相及的几类东西, 这里把它们放在一起, 纯粹是因为本人想把这些零碎的小知识点做一个统一的归纳。

base64

base64是什么:

base64指的是用64个字符小写字母a-z、大写字母A-Z、数字0-9、符号”+”、”/“(再加上作为垫字的”=”,实际上是65个字符作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。

base64怎么生成:

具体参考阮一峰的Blog

base64用来干什么:

  1. 便于传输。(base64将二进制数据编码成ASCII字符。因为某些传输通道只允许ASCII码传输, 比如: 电子邮件,DATA URL。)
  2. 一定的加密性。(数据上从某一程度能骗过用户的眼睛不易识别具体内容)

base64注意问题:

  1. base64与字符编码有关.utf-8码的”中”与gbk码的”中”的base64是不一样的。
  2. base64为了在url上传输,会把”+/“分别转成”-_”,”=”被删除掉。

urlencode

urlencode用来干什么:

URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号, 而urlencode是对URL中不支持的字符转换成unicode吗.

urlencode注意问题:

urlencode应该对于URL中不支持部分字符进行编码, 不要对整个URL进行编码。

hash

hash是什么:

散列函数或散列算法,又称哈希函数, 是将任意长度的数据映射到有限长度的域上。直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹).

常见hash算法:
md5, SHA-1

参考

各种google