汉字 | 我 | 爱 | 你 |
---|---|---|---|
ASCII | \u6211 | \u7231 | \u4f60 |
Unicode | 我 |
爱 |
你 |
UTF-8 | 我 |
爱 |
你 |
Hex编码 | %e6%88%91 | %e7%88%b1 | %e4%bd%a0 |
UrlEncode | %E6%88%91 | %E7%88%B1 | %E4%BD%A0 |
Base64 | 5oiR | 54ix | 5L2g |
汉字 | 我爱你 | 秘钥 | 长度 |
---|---|---|---|
MD5 | 4F2016C6B934D55BD7120E5D0E62CCE3 | 32 | |
SHA1 | 5890a73fed38bf09622c34ad9391f1d09c0ec100 | 40 | |
SHA256 | c0ad5411b19cfcba9d674d21411a970159f6ae4e180831ddd6a91797be547752 | 64 | |
SHA512 | 5b0753c33ba23fe2fe9e529afd6b97c3d8480bf17c1a4baea42dadc2504d1c57 fa4dc8afd51f79ae6fad719c611aa5749ab0b2b2edebdad661da78cc3759cbf0 |
128 | |
HMAC-MD5 | 6e3bdd2ed42e76bcf6290dbbb90b6573 | 1314 | 32 |
HMAC-SHA1 | 20b81f85289f6bbc74c3538f47585a6827d61f3e | 1314 | 40 |
以下为可解密,长度不定 |
|||
DES | U2FsdGVkX1/FAzn+YH6RqXS5moOMRJXvFgHhcdAbOnA= | 1314 | 至少32 |
3DES | U2FsdGVkX19emizRkOUAyraZsZdrm3FRqa6FRpnjy1Q= | 1314 | 至少32 |
AES | U2FsdGVkX186D0e/PlXrEjXmKyYz7zCdP4XfrH7p0iA= | 1314 | 至少44 |
RSA | k2EXiHp3G3Z6J3GCz4O2n9QD1qxnKhLXvZuaSnkzy6zlql22B5 Ke7KtN0jC6ajT0xV74p99gDE9ELTLWMaJRPSIbgT61is6NgJgj c4fd8PD2gpGD4aCMueudxxon6y+fa8bxTwUi78zqUzdYQW/49W RQTtN54nzylLwH5hVrUoE= |
公钥/私钥 | 至少172 |
- 单向散列函数/哈希:
MD5|SHA1|SHA256|SHA512
等 - 消息认证码:
HMAC-MD5|HMAC-SHA1
- 对称加密
DES|3DES|AES
(高级加密标准) - 非对称加密
RSA
- 数字签名
- 证书
对称加密DES|3DES|AES
配置
加密模式 | 填充 | 密码(key) | 偏移量 | 输出 | 字符集 |
---|---|---|---|---|---|
ECB Electronic CodeBook |
pkcs5padding | base64 | gb2312编码(简体) | ||
CBC Cipher Block Chainning |
pkcs7padding | hex | gbk编码(简繁体) | ||
CTR | zeropadding | gb18030编码(中日韩) | |||
OFB | iso10126 | utf8编码(Unicode编码) | |||
CFB | ansix923 | iso-8859-1(单字节) | |||
no padding |
非对称加密公钥私钥对
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrXqKMT3OUy3HipMD2rEp5Zzvd
hh+wF8qirxRPuLDi32xvlCAGXvlhDX0hbK8Dy4ODqTI8Tpm0GW3lHwOMWAe/45Ms
rcpi0Ej4YPkoHPBJyIITkPQsISb+Dtido0unEzhCF8ii/jxKEoUa4OCSjucucFJp
sCzEUeBTu49m16DXZQIDAQAB
-----END PUBLIC KEY-----
-----BEGIN PRIVATE KEY-----
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKteooxPc5TLceKk
wPasSnlnO92GH7AXyqKvFE+4sOLfbG+UIAZe+WENfSFsrwPLg4OpMjxOmbQZbeUf
A4xYB7/jkyytymLQSPhg+Sgc8EnIghOQ9CwhJv4O2J2jS6cTOEIXyKL+PEoShRrg
4JKO5y5wUmmwLMRR4FO7j2bXoNdlAgMBAAECgYBdz3xkGspG1egODeqkHkTWmLCo
39dQ6nU/AWC5E32hdHVDz26Ijk0t19h8B6b3CN2BoYmigdSaRqFmH8gtd7MlbpzZ
53WmeGcOc2AexYBxAWVFyMaY2kfnrY9z1Zv2n/xclCnlMViGm95K8+IIEKv0AayD
IiNTY8yDDNuYGLDksQJBAN2KHLcXAQvGTvyjZd9J8V/ROI1Jkqy4BNhaOguHb3/U
m4xFj4ZyXTJ24MhYDiRW2Zw/YYHC+0Yxg87QkSRT3JsCQQDGBrfZlxxdkwZd7E51
tqAYYkEuyrLLZdq3/5eXFThC2Uy+5l3bE6bMyGQm/1dT9TJWT633n0N4xiPNW6ug
V1v/AkEAnPDJdN7kC85ZiFnMwkjkqKdTs6uKL7dRH1+TvTUdxOX9p3pjua/s2+Ih
TWwr4IxyLmEsFzvkvA45vNo96AlMvwJBAJqHx5SPLV2ATCmjLB8D4q7kjcU7/IZo
92M6m0sVDhBsjk0ya+93yGRpxG4COF2WLC/aggGIURjAVlP8w1OemHUCQQCEgtVF
NiBj65iyqtrh9+tZpqmZFiSZvYOuRXDmAwZfBNUaab4MzAqPcKJGj/+sRo+ZnNFx
NIbOsUfM7C0N/75z
-----END PRIVATE KEY-----
我爱你
k2EXiHp3G3Z6J3GCz4O2n9QD1qxnKhLXvZuaSnkzy6zlql22B5Ke7KtN0jC6ajT0xV74p99gDE9ELTLWMaJRPSIbgT61is6NgJgjc4fd8PD2gpGD4aCMueudxxon6y+fa8bxTwUi78zqUzdYQW/49WRQTtN54nzylLwH5hVrUoE=
公钥加密 私钥解密 密钥有密码的要输入密码
编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。
ASCII
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)
是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。
ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符
常见ASCII码的大小规则:0~9<A~Z<a~z。
1)数字比字母要小。如 “7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;
4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。
几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48
汉字编码
字符编码
计算机中汉字的表示也是用二进制编码,同样是人为编码的。根据应用目的的不同,汉字编码分为外码、交换码、机内码和字形码。
目前的文字编码标准主要有 ASCII、GB2312、GBK、Unicode等。
ASCII 编码是最简单的西文编码方案。
GB2312、GBK、GB18030 是汉字字符编码方案的国家标准。
ISO/IEC 10646 和 Unicode 都是全球字符编码的国际标准。
GB2312-80 标准
《信息交换用汉字编码字符集》
https://baike.baidu.com/item/GB2312
GB2312-80 是 1980 年制定的中国汉字编码国家标准。共收录 7445 个字符,其中汉字 6763 个。
GBK 编码标准
《汉字内码扩展规范》(GBK) 于1995年制定,
兼容GB2312、GB13000-1、BIG5 编码中的所有汉字,
使用双字节编码,编码空间为 0x8140~0xFEFE,共有 23940 个码位,
其中 GBK1 区和 GBK2 区也是 GB2312 的编码范围。
收录了 21003 个汉字。
GB18030编码标准
GB18030-2005《信息技术中文编码字符集》
是我国制订的以汉字为主并包含多种我国少数民族文字(如藏、蒙古、傣、彝、朝鲜、维吾尔文等)的超大型中文编码字符集强制性标准,
其中收入汉字70000余个。
Unicode
https://baike.baidu.com/item/Unicode
Unicode是一种在计算机上使用的字符编码。
它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求 。
Unicode 标准始终使用十六进制数字,而且在书写时在前面加上前缀“U+”,
例如字母“A”的编码为 004116 和字符“?”的编码为 20AC16。所以“A”的编码书写为“U+0041”。
UTF-8 编码
UTF-8是Unicode的其中一个使用方式。 UTF是 Unicode Tranformation Format,即把Unicode转做某种格式的意思。
URL编码
字符-->ASCII-->%(十六进制编码)
url编码就是一个字符ascii码的十六进制
URLEncoder是将ASCII码集之外的转换为%加上相应的16进制,而ASCII码集内的字符不进行处理
url编码是一种浏览器用来打包表单输入的格式。
浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。
不管哪种情况,在服务器端的表单输入格式样子象这样:
theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes
URL编码遵循下列规则: 每对name/value由&;符分开;每对来自表单的name/value由=符分开。
如果用户没有输入值给这个name,那么这个name还是出现,只是无值。
任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,
当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。
不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。
Base64编码
描述:Base64可以成为密码学的基石,非常重要。
特点:可以将任意的二进制数据进行Base64编码
结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件。
65字符:A~Z a~z 0~9 + / =
对文件进行base64编码后文件数据的变化:编码后的数据~=编码前数据的4/3,会大1/3左右。
Base64编码原理
1)将所有字符转化为ASCII码;
2)将ASCII码转化为8位二进制;
3)将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位;
4)统一在6位二进制前补两个0凑足8位;
5)将补0后的二进制转为十进制;
6)从Base64编码表获取十进制对应的Base64编码;
处理过程说明:
a.转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。
b.数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。
c.不断进行,直到全部输入数据转换完成。
d.如果最后剩下两个输入数据,在编码结果后加1个“=”;
e.如果最后剩下一个输入数据,编码结果后加2个“=”;
f.如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。