编码、加密、登录、授权

1.加密

概念:
1.可以对任意二进制数据加密
2.非对称加密的出现使得密码学有了更广泛的用途:数字签名

1.1.对称加密

对称加密:
通信双方使用同一个秘钥,加密时使用加密算法配合秘钥加密,解密时使用解密算法配合秘钥进行解密
对此加密的经典算法:
DES(56位秘钥,秘钥太短而逐渐被放弃使用)、AES(128位,192位,256位秘钥,现在流行)
对称加密作用:
加密通信,防止信息在不安全的网络上被截获后,信息被人获取或者串改。
对称加密(AES)的破解
破解思路:
1.拿到一组或者多组 原文-密文 对
2.设法找到一个秘钥,这个秘钥可以将这些原文-密文对中的原文加密为密文,以及将密文解密为原文的组合,既为成功破解
反破解:
一种优秀的对称加密算法的标准是,让破解者找不到比穷举法更为有效的手段,并且穷举法的破解时间足够长

1.2.非对称加密

原理:使用公钥对数据进行加密得到密文;使用私钥对数据进行解密得到原数据。


image.png

由于私钥和公钥可相互解,因此非对称加密还可用于数字签名技术


image.png

直接对原数据签名会导致原数据不可读,所以通常会对原数据进行hash以后对hash签名,然后附加再原数据的后面作为签名。
image.png

使用非对称加密通信,可以在不可信网络上将双方的公钥传递给对方,然后在发消息前分别对消息使用对方的公钥来加密和使用自己的私钥来签名,做到不可信网络上的可靠秘钥传播以及加密通信


image.png
非对称加密的经典算法:RSA(可用于加密和签名)、DSA(仅用于签名。速度更快)
非对称加密的优缺点
  1.优点:可以在不安全的网络上传输秘钥
  2.缺点:计算复杂,性能相比对称加密差很多
非对称加密(如:RSA、ECDSA)的破解
破解思路
1.与对称加密相比,非对称加密的公钥非常容易获取,因此获得 原文-密文 对是非常容易的。
2.可以通过 原文-密文 对来解密密文。
    3.可以通过公钥来推断出私钥。

1.3 秘钥与密码

    1.密码:指的的各种登录密码,验证密码,提供数据来验证用户身份。
    2.秘钥:是在加密解密场景下,用于数据的加密与还原,防止被盗取或串改。

2.编码

2.1 Base64

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后BinHex的版本使用不同的64字符集来代表6个二进制数字,但是不被称为Base64。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,包括MIME的电子邮件及XML的一些复杂数据。

算法:将原数据每6位对应成Base64索引表中的一个字符排成一个字符串(每个字符占8位)

例:
单词 Man,对应Base64索引表 M-77 a-97 n-110;77的二进制01001101,97的二进制01100001,110的二进制01101110;然后取每6位对应的索引字符,010011 对应 19 对应 T,以此类推得到 TEFu。


image.png

如果Base64的末尾不足则补0


image.png

Base64的用途

1.将二进制数据扩充了存储和传输途径(例:可以将数据保存到文本文件,可以将数据通过聊天对话框发送,可以在URL中加入二进制数据)。
2.普通字符通过Base64后可以防止偷窥。

Base64缺点

数据进行Base64后会变大。

问题:“Base64加密图片传输更安全和高效”

1.Base64是编码,不是加密,另外Base64编码后会增加数据量,降低网络性能,增大用户流量。
2.Base64对图片的编码在于,在需要的时候可以用文本的形势来传输图片。

Base64的变种 Base58

比特币使⽤用的编码⽅方式,去掉了了 Base64 中的数字 "0",字⺟母⼤大写 "O",字⺟母⼤大写 "I",和字⺟母⼩小写 "l",以及 "+" 和 "/" 符号,⽤用于⽐比特币地址的表示。
Base58 对于 Base64 的改动,主要⽬目的在于⽤用户的便便捷性。由于去掉了了难以区分的字符,使得 Base58 对于「⼈人⼯工抄写」更更加⽅方便便。另外,去掉了了 "+" "/" 号后也让⼤大多数的软件可以⽅方便便双击选 取。

URL 使用的百分号编码 urlencode

在URL的字符串中,对一些不用于特殊用途的保留字符,使用百分号“%”为前缀进行单独编码,以避免出现解析错误。
urlencode是一个函数,可将字符串以URL编码,用于编码处理。
URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。
适用于统一资源标识符(URI)的编码,也用于为"application/x-www-form-urlencoded" MIME准备数据, 因为它用于通过HTTP的请求操作(request)提交HTML表单数据。

3.压缩与解压缩

压缩:将数据使用更具有优势的编码算法进行编码。压缩也是编码。
解压缩:将压缩数据还原为原有模式,方便使用。

目的:减少数据占用的存储空间。

4.序列化

定义:

序列化不是编码,序列化是把数据对象(一般是内存中)转换为字节序列的过程。对象在程序内存里存放形式是散乱的(存放在不同的内存区域,并且由引用进行连接),通过序列化可以把内存中的对象转换成一个字节序列,从而使用byte[]数组等形式进行本地存储或者网络传播,在需要使用的时候进行反序列化组装,既还原数据。

目的:

让内存中的对象可以被存储和传播。

序列化与编码的区别:

编码是将数据由一种格式转换为另一种格式,序列化是把数据由内存中的对象(他不是某种具体的格式)转换为字节序列。

5.Hash

定义:

把任意数据转换成指定大小范围(通常在256个字节以内)的数据

Hash的实际用途:

1.验证唯一性。数据完整性的验证
例:从网络上下载文件,对比hash值是否与网络上提供的一样。
2.快速查找
例:HashMap
3.隐私保护
例:当重要数据必须暴露的时候,会选择同时暴露他的hash值,来验证数据是否为原数据。但是这不是加密,因为不可逆。
Hash是编码吗:是加密吗:
Hash是单向过程,不可逆,因此Hash既不是加密也不是编码。

6.字符集

字符编码(英语:Character encoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量的字符,并且需要一种系统而不是临时的方法实现这些字符的编码。

引用:Hencoder

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,646评论 4 366
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,979评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,391评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,356评论 0 215
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,740评论 3 293
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,836评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,022评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,764评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,487评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,728评论 2 252
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,200评论 1 263
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,548评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,217评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,134评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,921评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,919评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,766评论 2 274

推荐阅读更多精彩内容

  • 上周在项目中需要对URL参数进行加密传输,实际过程中碰到了一些问题,在此对加密算法的Java实现及出现的编码问题进...
    茶树丶ccha阅读 2,176评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,105评论 18 139
  • Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Andr...
    JackChen1024阅读 1,140评论 0 11
  • 介绍 加密和解密都使用同一把秘钥,这种加密方法称为对称加密,也称为单密钥加密。简单理解为:加密解密都是同一把钥匙 ...
    Blizzard_liu阅读 779评论 0 1
  • 村委会换届选举下个月开始了。 张三还在回忆着:三年前,身上一分钱也没有,正值村委会换届选举,一家四口人,除了儿子未...
    徒步独行阅读 308评论 1 1