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