对潜在的安全威胁,要做到三防。
1 防窃听
2 防篡改
3 防伪造
编码算法
ASCII码
ASCII编码最多只能有127个字符
UTF-8/Unicode编码
想对更多的文字进行编码,就需要用Unicode。而中文的中使用Unicode编码就是0x4e2d
,使用UTF-8则需要3个字节编码
最简单的编码是直接给每个字符指定一个若干字节表示的整数,复杂一点的编码就需要根据一个已有的编码推算出来。
比如UTF-8编码,它是一种不定长编码,但可以从给定字符的Unicode编码推算出来。
URL编码
URL编码是浏览器发送数据给服务器时使用的编码,它通常附加在URL的参数部分,例如:
之所以需要URL编码,是因为出于兼容性考虑,很多服务器只识别ASCII字符。但如果URL中包含中文、日文这些非ASCII字符怎么办?不要紧,URL编码有一套规则:
- 如果字符是
A
~Z
,a
~z
,0
~9
以及-
、_
、.
、*
,则保持不变; - 如果是其他字符,先转换为UTF-8编码,然后对每个字节以
%XX
表示。
例如:字符中
的UTF-8编码是0xe4b8ad
,因此,它的URL编码是%E4%B8%AD
。URL编码总是大写。
URL编码是编码算法,不是加密算法。URL编码的目的是把任意文本数据编码为%
前缀表示的文本,编码后的文本仅包含A
~Z
,a
~z
,0
~9
,-
,_
,.
,*
和%
,便于浏览器和服务器处理。
Base64编码
Base64编码是对二进制数据进行编码,表示成文本格式。
Base64编码可以把任意长度的二进