Lesson 20

Web 开发

三方 API 调用

安全

简单加密

加密

encrypt 所有字母 + 1

rest api -> sftu bqm

解密

decrypt 所有字母 - 1

sftu bqm -> rest api 

评论

在加密方法上保密

一旦别人知道了加密方法 就会被破解

基于 key 的 对称加密

介绍

加密方法 公开,但是加密过程中需要引入一个数据,帮助加密,

而这个数据是保密的

加密

data = 1110 0011 1101 0101
key  =                0101
     = 1011 0110 1000 0000 -> encrypted data 

分析

对方虽然知道 你是用这种方法加密的,但是无法解密

对方就要使用 同样的 key 进行解密

解密

 = 1011 0110 1000 0000
 =                0101 
 = 1110 0011 1101 0101 -> decrypted data 

安全分析

A
m -> en(m, key) -> B 
                en(m, key)
                de(en(m, key), key) -> m 

A
n -> en(n, key) -> C 
                en(n, key)
                de(en(n, key), key) -> n

A
m -> en(m, key) -> B 
                \
                \-> C 
                    de(en(m, key), key) -> m

基于 key 的 非对称加密

两个 key

k1 
k2 
m -> en(m, k1) = m'
    de(m', k2) = m

私钥 与 公钥

private key : key 生成出来之后,只有它自己知道

public key : key 生出来之后,会交给别人

私钥加密 公钥解密

k1 => private key 
k2 => public key 
A 
m -> en(m, k1) = m' -> B 
                    de(m', k2) = m

当 B 拿到 m' 并且能顺利解密时, B 能确定消息的来源一定是 A

公钥加密 私钥解密

k1 => public key 
k2 => private key 
A 
m -> en(m, k1) = m' -> B 
                    de(m', k2) = m

当 A 发送 m' 的时候,A 能确定 消息 不会被任何一个 B 之外的人解密

认证 与 授权Authorization vs Authentication

Authentication

认证 就是用 账号 和 密码 确定对方的身份

Authorization

权限 确定一个客户是否有对应的权限

Token

账号 和 密码 ->

Client - 账号 和 密码 -> Authentication Server 
    <-     Token -                    ^
                                        | token 
Client - Token, data -> Business Server /
    <-   response -

Git

名词

Change

Git 实际上是 对你本地的代码的一个备份

当你备份后,你对代码做出了修改 不会! 因为还留在内存

修改 + 保存了,修改 就进到了文件里

git 会对比你当前的代码 和 它备份的版本 这个时候 就会出现 Change

Commit

一堆 Change 会形成一个 Commit

Commit 就是一次备份,备份的是一个时间点?

Commit 就是一堆改变

Commit Tree/Graph

原始文件 会形成多次 commit

C1 -> + line 
C2 -> + line

如果回溯 C1 + C2 ,能通过这些改变构建出来 最后的状态

Branch

Commit Tree 上的一个点

[] -> C1 -> C2 -> C3 
    ^           ^
    b1          b3

Repo

= Commit Tree + Branches

操作

git init

对当前文件夹 增加 git 服务。

对 文件夹。。。。进行备份监听

git status

看状态

git add

选择文件 准备 备份

git add .

git commit -m "message"

对选中的文件 进行备份

git log --all --decorated --one-line --graph

git checkout -b newBranch

1. 新建 Branch

2. 切到 branch

什么是我在哪个branch 上?

1. 本地文件备份 change 对比时,跟哪个版本的备份对比

跟 当前 branch 所指的 commit 对比

2. change commit 时,加到 哪个 commit 上?

加到 当前 branch 所指的 commit

git checkout branchname

git 会 逆向还原,把 branchname 所指的 commit 的文件状态 恢复到 你的本地文件夹结构

git merge branchname

把 branchname 上的 commit 历史 融合到 当前 branch 里

git clone https://github.com/zhaozheid/z1-182-java200.git 28_git

cd 28_git 

ZZAX 微信公众

文档一更新,立刻告诉你