12 事后诸葛亮

尚未进行身份认证

我要认证

深入浅出!

等级
TA的排名 1k+

十、Base64编码

Base64Base64编码,是我们程序开发中经常使用到的编码方法。因为base64编码的字符串,更适合不同平台、不同语言的传输(一个字符可能其他的系统没有)。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法,一句:将二进制数据文本化(转成ASCII)。由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成...

2019-04-18 19:28:30

九、SSL、TLS

SSL/TLS — 为了更安全的通信SSL/TLS是世界上应用最广泛的密码通信方法。比如说,当在网上商城中输人信用卡号时,我们的Web浏览器就会使用SSL/TLS进行密码通信。使用SSL/TLS可以对通信对象进行认证,还可以确保通信内容的机密性。SSL/TLS中综合运用了之前所学习的对称密码、消息认证码、公钥密码、数字签名、伪随机数生成器等密码技术。严格来说,SSL(Secure Socke...

2019-04-12 19:39:09

八、证书

证书 – 为公钥加上数字签名要开车得先考驾照.驾照上面记有本人的照片、姓名、出生日期等个人信息.以及有效期、准驾车辆的类型等信息,并由公安局在上面盖章。我们只要看到驾照,就可以知道公安局认定此人具有驾驶车辆的资格。公钥证书(Public-Key Certificate,PKC)其实和驾照很相似,里面记有姓名、组织、邮箱地址等个人信息,以及属于此人的公钥,并由认证机构(Certificatio...

2019-04-12 19:38:50

七、数字签名

数字签名 — 消息到底是谁写的数字签名是一种将相当于现实世界中的盖章、签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。我们假设Alice使用的密钥是一个只有Alice自己才知道的私钥。当Alice发送消息时,她用私钥生成一个“签名"。相对地,接收者Bob则使用一个和Alice不同的密钥对签名进行验证。使用Bob的密钥无法根据消息生成签名,但是用Bob的...

2019-04-12 19:38:31

六、消息认证码

消息认证码 — 消息被正确传送了吗?消息的完整性(integrity), 指的是“消息没有被篡改"这一性质,完整性也叫一致性。消息的认证(authentication)指的是“消息来自正确的发送者"这一性质。消息认证码(message authentication code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称为MAC。消息认证码的输入包括任意长度的消息和一个发送者...

2019-04-12 19:38:10

五、单向散列函数

单向散列函数 — 获取消息的指纹当需要比较两条消息是否一致时,我们不必直接对比消息本身的内容,只要对比它们的“指纹”就可以了。单向散列函数(one-wayftnction)有一个输人和一个输出,其中输人称为消息(message),输出称为散列值(hashvalue)。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。这里的消息不一定是人类能够读懂的文字,也可...

2019-04-12 19:37:49

四、非对称加密

非对称加密也叫公钥密码: 使用公钥加密, 使用私钥解密在对称密码中,由于加密和解密的密钥是相同的,因此必须向接收者配送密钥。用于解密的密钥必须被配送给接收者,这一问题称为密钥配送问题。如果使用非对称加密也可以称为公钥密码,则无需向接收者配送用于解密的密钥,这样就解决了密钥配送问题。可以说非对称加密是密码学历史上最伟大的发明。非对称加密中,密钥分为加密密钥和解密密钥两种。发送者用加密密钥对消息...

2019-04-12 19:37:19

三、分组密码的模式

前面介绍的DES和AES都属于分组密码,它们只能加密固定长度的明文。如果需要加密任意长度的明文,就需要对分组密码进行迭代,而分组密码的迭代方法就称为分组密码的“模式”。分组密码有很多种模式,如果模式的选择不恰当,就无法保证机密性。例如,如果使用ECB模式,明文中的一些规律就可以通过密文被识别出来。分组密码的主要模式(ECB、CBC、CFB、OFB、CTR),最后再来考察一下到底应该使用哪一种...

2019-04-12 19:36:56

二、对称加密

对称加密:也称为对称密码,是指在加密和解码时使用同一秘钥的加密方式1.DES1.1什么是DESDES一直以来被美国以及其他国家的政府和银行等广泛使用。然而,随着计算机的进步,现在DES已经能够被暴力破解,强度大不如前了。由于DES的密文可以在短时间内被破译,因此除了用它来解密以前的密文以外,现在我们不应该再使用DES了。1.2加密和解密DES是一种将64比特的明文加密成64比...

2019-04-12 19:36:27

一、密码基础知识

1.加密三要素明文/密文加密之前的消息称为明文(plaintext),加密之后的消息称为密文(cipher-text)。秘钥定长的字符串需要根据加密算法确定其长度算法加密算法解密算法加密算法和解密算法有可能是互逆的, 也有可能相同2.对称加密秘钥: 加密解密使用的是同一个秘钥, 秘钥有一个特点双方向保证机密性加密效率高, 适合加密大数据, 大文...

2019-04-12 19:35:26

二十、BoltDB k-v存储

Bolt 是一个纯粹的 Go key/value数据库。 该项目的目标是为不需要完整数据库服务器(如Postgres或MySQL)的项目提供一个简单,快速和可靠的数据库。如果您需要高随机写入吞吐量(> 10,000 w / sec)或者您需要使用旋转磁盘,则 LevelDB可能是一个不错的选择。 如果你的应用程序是重读的,或者做了很多范围扫描,Bolt 可能是一个不错的选择。Bolt ...

2019-04-12 19:34:01

三、使用GitHub

1.注册GitHub账号GitHub的网址是:https://github.com/要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository。2.配置GitHub我们首先得生成公钥,然后复制到GitHub上然后我们才能无密码登录。在git bash中获取密匙的时候需要输入:ssh-keyg...

2019-03-06 14:36:27

二、分支管理

1.创建与合并分支git把我们之前每次提交的版本串成一条时间线,这条时间线就是一个分支。截止到目前只有一条时间线,在git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。(1)一开始的时候,master分支是一条线,git用master指向最新的提交,再用HEAD指向master,就...

2019-03-06 14:35:51

一、版本创建与回退

1.git简介git是目前世界上最先进的分布式版本控制系统。2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。Git和svn的区别:https://www.cnblogs.com/dazhidacheng/p/7478438.htmlGit是分布式版本控制系统,同一个Git仓库,可以分布到不同的...

2019-03-06 14:35:06

十九、Beego框架快速入门

Beego框架快速入门1.框架了解go语言的web框架:beego,gin,echo等等,那为什么我们选择beego呢?第一,beego是中国人开发的,开发文档比较详细,beego官网网址: https://beego.me/ 。第二,现在公司里面用beego的也比较多,比如今日头条,百度云盘,腾讯,阿里等。2.环境搭建这里默认大家已经搭建好了go语言的开发环境。需要安装Bee...

2019-03-06 14:33:32

十八、C与GO混合编程

作为一门直接传承于C的语言,Go当然应该将与C语言的交互作为首要任务之一。Go确实也提供了这一功能,称为Cgo。由于cgo需要gcc支持,所以需要配置gcc环境,如果是linux下一般可以跳过该步骤,win下则需要自己安装了,这里我们使用MinGW由于我是64位,这里下载64位的POSIX版本。具体的安装过程就不费话了,直接解压即可。安装完成后需要配置环境变量${home}/binhttp...

2019-02-20 22:36:50

十七、连接数据库

1.GO连接MySQL因为Go语言没有提供任何官方数据库驱动,所以需要安装第三方函数库。需要安装git软件,安装过程一直点击下一步即可。安装完成后需要配置环境变量${git_home}/bin设置GOPATH的环境变量,这样驱动才会下载到项目根目录中。在cmd命令窗口中输入如下命令安装驱动:go get github.com/go-sql-driver/mysql执行完上面这个命令就会...

2019-02-20 22:36:28

十六、反射

1.基本用法func main() { var x float64 = 3.4 //1.获取类型信息 fmt.Println("type:", reflect.TypeOf(x)) //type: float64 v := reflect.ValueOf(x) fmt.Println("type:", v.Type()) /...

2019-02-20 22:36:01

十五、JSON处理

1、编码为JSON格式使用json.Marshal()函数可以对一组数据进行JSON格式的编码。Go语言的大多数数据类型都可以转化为有效的JSON文本,但channel、complex和函数这几种类型除外。如果转化前的数据结构中出现指针,那么将会转化指针所指向的值,如果指针指向的是零值,那么null将作为转化后的结果输出。结构体会转化为JSON对象,并且只有结构体里边以大写字母开头的可被...

2019-02-20 22:35:40

十四、爬虫

1.爬取百度贴吧//HTTP网页请求func HttpGet(i int, url string) (result string, err error) { resp, err1 := http.Get(url) if err1 != nil { err = err1 //将封装函数内部的错误,传出给调用者。 fmt.Println("http.Get err:", err) ...

2019-02-20 22:35:21

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!